提高工作效率的7個 Vim 技巧

vim 是個非常高效、非常好用的工具,很多人一旦開始使用 Vim 之後就再也無法自拔。

提高工作效率的7個 Vim 技巧

1. 重映射 vim 的 ESCAPE 鍵

vim 有多個模式並不是什麼大問題,但在模式間切換的時候會感覺很糟。ESC 鍵有點遠,這太麻煩了。當我面對新的 vim 環境時,所做的第一件事就是添加如下映射:

inoremap jj

2. 重映射 Vim 的 Leader 鍵

如果你不熟悉 leader 鍵,也不知道它能為你做什麼,那你就從這開始瞭解吧。它本質上是作為你快捷鍵的激活鍵,你可以自定義用哪個鍵作為你的 leader 鍵。所以,你可以:

nnoremap j VipJ

這可以讓你按下 leader 鍵結合大寫 ‘j’ 後可視化的選擇整段並加入行。

我個人用 ‘,’ 鍵作為我的leader鍵,這樣我可以用 ‘,’ 激活我所有的快捷鍵,然後通過 ‘jj’ 退出插入模式。你可以在 .vimrc中像這樣映射:

let mapleader = “,”

提高工作效率的7個 Vim 技巧

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 查找工具來自動補全):/<ctrl-p>

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>', '', '<2-LeftMouse>'],/<space>

}

endif

注:建議使用 vim-scripts/gitignore 插件。

5. 提高單元測試執行效率

我用 vim-vroom 插件以及相應的 tmux 配置來進行我的測試。

vim-room 缺省使用 <leader>r 執行測試,由於我已將 Leader 映射為 <space> ,因此我通過<space>r 來運行測試工具。/<space>/<space>/<leader>

由於測試在 tmux 的單獨窗口運行,因此我可以邊看測試進展共修訂我的代碼。

提高工作效率的7個 Vim 技巧

6. Vim normal命令

Vim normal 命令可以在命令行模式執行普通模式下的命令,當normal命令與Vim可視化模式結合時,只需很少的操作就能完成大量重複性工作。

比如在編輯Markdown文件時想在某些行前面都加上 - 讓普通文本行變成無序列表,可以先用 V 選中這些行,然後按 :'normal I- 並回車即可實現。

7. Vim替換命令s

Vim命令行模式下使用 :substitute 命令 (縮寫形式 s ) 可以將指定範圍內的字符替換成其他目標字符,實現同時處理多個目標行的操作效果。

例如,假設希望將Vim當前打開文件的所有行尾多餘的空格刪除,可以使用Vim命令 :%s= *$==。

提高工作效率的7個 Vim 技巧

其中,% 表示整個文件範圍, *$ 表示以0個或多個 * 結尾的文本行。


分享到:


相關文章: