在编写代码时,我们时常一不留神就在行末多打了几个空格。却又看不出来,即使用 vim-airline 之类的插件能知道有行末空格(trailing spaces),删除起来也特别麻烦。本文就介绍一个我就常用的 vim 快捷键:删除行末空格。
功能实现
Vim 并没有内置的支持,所以我们有正则表达式替换来实现这个功能:
:%s/\s\+$// |
- 开头的
%
代表匹配当前文件的所有行 \s
代表匹配空格字符,即空格符(Space)和制表符(Tab)\+
用于匹配一个及多个。故\s\+
代表匹配一个或多个空格字符。$
代表匹配行末。
综上,上述命令的作用是匹配行末的一个或多个空格字符并删除它们。
快捷键绑定
如果每次有行末空格,都要输入上节的命令,还是相当麻烦的。对于这种常用命令,最好还是给它绑定一个方便的快捷键。
这里分享我的快捷键,绑定到三个空格:
nmap <leader><Space><Space> :%s/\s\+$//<cr> |
这里的 <leader>
我事先设置成了空格(强烈推荐)。因为目的是删除空格,绑定成空格也更好记忆。
另外,用这么多空格(3个)是因为在其它的快捷键中用了空格。
结语
本文中介绍的功能本身挺简单,但重要的是,如果一些命令你经常使用,那么为它设定一个快捷键能极大提升自己的效率。
实际中,这个快捷键是我常使用的使用中的前 5 名。