Vim 是個非常高效、非常好用的工具,很多人一旦開始使用 Vim 之后就再也無法自拔。然而, Vim 仍然有其自身缺陷,對于普通用戶來說,很難在入門的時候就體會到Vim的所謂高效性。本文介紹7個提高你工作效率和生產力的Vim使用技巧,作為你體驗使用Vim進行高效操作的入門級教程。
1、重映射 vim 的 ESCAPE 鍵
vim 有多個模式并不是什么大問題,但在模式間切換的時候會感覺很糟。ESC 鍵有點遠,這太麻煩了。當我面對新的 vim 環境時,所做的第一件事就是添加如下映射:
inoremap jj <ESC>
2、重映射 Vim 的 Leader 鍵
如果你不熟悉 leader 鍵,也不知道它能為你做什么,那你就從這開始了解吧。它本質上是作為你快捷鍵的激活鍵,你可以自定義用哪個鍵作為你的 leader 鍵。所以,你可以:
nnoremap j VipJ
這可以讓你按下 leader 鍵結合大寫 ‘j’ 后可視化的選擇整段并加入行。
我個人用 ‘,’ 鍵作為我的leader鍵,這樣我可以用 ‘,’ 激活我所有的快捷鍵,然后通過 ‘jj’ 退出插入模式。你可以在 .vimrc中像這樣映射:
let mapleader = “,”
3、光標移動
Vim的最大好處就是幾乎所有的操作都是通過主鍵區的鍵位進行操作,雙手不用離開鍵盤主區
◎h、j、k、l,分別是左下上右移動光標,前面加上n,可以重復移動多次,例如3j就可以往下移動3行
◎^,跳到一行的開始
◎$,跳到一行的結束
◎gg,跳到文本的第一行
◎G,跳轉到文本的最后一行
◎nG或者ngg,跳轉到第n行,例如: 10G,跳轉到第10行;20gg,跳轉到第20行
4、提高 Git 工程中 Ctrl-P 的執行效率
將下面的內容添加到你的 .vimrc 文件中(配置使用 <Ctrl-P> 來使用 git 或 silver 查找工具來自動補全):
et g:ctrlp_use_caching = 0
if executable(‘ag’)
set grepprg=ag –nogroup –nocolor
let g:ctrlp_user_command = ‘ag %s -l –nocolor -g “”‘
else
let g:ctrlp_user_command = [‘.git’, ‘cd %s && git ls-files . -co –exclude-standard’, ‘find %s -type f’]
let g:ctrlp_prompt_mappings = {
‘AcceptSelection(“e”)’: [‘<space>’, ‘<cr>’, ‘<2-LeftMouse>’],
}
endif
注:建議使用 vim-scripts/gitignore 插件。
5、提高單元測試執行效率
我用 vim-vroom 插件以及相應的 tmux 配置來進行我的測試。
vim-room 缺省使用 <Leader>r 執行測試,由于我已將 Leader 映射為 <Space> ,因此我通過<Space>r 來運行測試工具。
由于測試在 tmux 的單獨窗口運行,因此我可以邊看測試進展共修訂我的代碼。
6、Vim normal命令
Vim normal 命令可以在命令行模式執行普通模式下的命令,當normal命令與Vim可視化模式結合時,只需很少的操作就能完成大量重復性工作。
比如在編輯Markdown文件時想在某些行前面都加上 – 讓普通文本行變成無序列表,可以先用 V 選中這些行,然后按 :'<,’>normal I- 并回車即可實現。
7、Vim替換命令s
Vim命令行模式下使用 :substitute 命令 (縮寫形式 s ) 可以將指定范圍內的字符替換成其他目標字符,實現同時處理多個目標行的操作效果。
例如,假設希望將Vim當前打開文件的所有行尾多余的空格刪除,可以使用Vim命令 :%s= *$==。
其中,% 表示整個文件范圍, *$ 表示以0個或多個 * 結尾的文本行。
以上就是云和數據和大家分享的7個Vim使用技巧,如果你有其他想法,歡迎留言與大家交流。