Vim 小技巧-刪除行末空格
阿新 • • 發佈:2018-12-11
在編寫程式碼時,我們時常一不留神就在行末多打了幾個空格。卻又看不出來,即使用 vim-airline 之類的外掛能知道有行末空格(trailing spaces),刪除起來也特別麻煩。本文就介紹一個我就常用的 vim 快捷鍵:刪除行末空格。
功能實現
Vim 並沒有內建的支援,所以我們有正則表示式替換來實現這個功能:
:%s/\s\+$// |
- 開頭的
%
代表匹配當前檔案的所有行 \s
代表匹配空格字元,即空格符(Space)和製表符(Tab)\+
用於匹配一個及多個。故\s\+
代表匹配一個或多個空格字元。$
代表匹配行末。
綜上,上述命令的作用是匹配行末的一個或多個空格字元並刪除它們。
快捷鍵繫結
如果每次有行末空格,都要輸入上節的命令,還是相當麻煩的。對於這種常用命令,最好還是給它繫結一個方便的快捷鍵。
這裡分享我的快捷鍵,繫結到三個空格:
nmap <leader><Space><Space> :%s/\s\+$//<cr> |
這裡的 <leader>
我事先設定成了空格(強烈推薦)。因為目的是刪除空格,繫結成空格也更好記憶。
另外,用這麼多空格(3個)是因為在其它的快捷鍵中用了空格。
結語
本文中介紹的功能本身挺簡單,但重要的是,如果一些命令你經常使用,那麼為它設定一個快捷鍵能極大提升自己的效率。
實際中,這個快捷鍵是我常使用的使用中的前 5 名。