1. 程式人生 > >Vim 小技巧-刪除行末空格

Vim 小技巧-刪除行末空格

在編寫程式碼時,我們時常一不留神就在行末多打了幾個空格。卻又看不出來,即使用 vim-airline 之類的外掛能知道有行末空格(trailing spaces),刪除起來也特別麻煩。本文就介紹一個我就常用的 vim 快捷鍵:刪除行末空格。

功能實現

Vim 並沒有內建的支援,所以我們有正則表示式替換來實現這個功能:

:%s/\s\+$//
  1. 開頭的 % 代表匹配當前檔案的所有行
  2. \s 代表匹配空格字元,即空格符(Space)和製表符(Tab)
  3. \+ 用於匹配一個及多個。故 \s\+ 代表匹配一個或多個空格字元。
  4. $ 代表匹配行末。

綜上,上述命令的作用是匹配行末的一個或多個空格字元並刪除它們。

快捷鍵繫結

如果每次有行末空格,都要輸入上節的命令,還是相當麻煩的。對於這種常用命令,最好還是給它繫結一個方便的快捷鍵。

這裡分享我的快捷鍵,繫結到三個空格:

nmap <leader><Space><Space> :%s/\s\+$//<cr>

這裡的 <leader> 我事先設定成了空格(強烈推薦)。因為目的是刪除空格,繫結成空格也更好記憶。

另外,用這麼多空格(3個)是因為在其它的快捷鍵中用了空格。

結語

本文中介紹的功能本身挺簡單,但重要的是,如果一些命令你經常使用,那麼為它設定一個快捷鍵能極大提升自己的效率。

實際中,這個快捷鍵是我常使用的使用中的前 5 名。