10

Vim 小技巧-删除行末空格

 3 years ago
source link: https://lotabout.me/2015/Vim-%E5%B0%8F%E6%8A%80%E5%B7%A7%EF%BC%8D%E5%88%A0%E9%99%A4%E8%A1%8C%E6%9C%AB%E7%A9%BA%E6%A0%BC/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Table of Contents

在编写代码时,我们时常一不留神就在行末多打了几个空格。却又看不出来,即使用 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 名。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK