一. 批量添加注释

方法1:块选择

  1. 光标移动到行首,按 v 进入visual mode;
  2. Ctrl+v 转为按列选择;
  3. 选中想要添加注释的列;
  4. shift+i 进入插入模式;
  5. 输入注释,如#或//,按 Esc 退出即可在行首添加注释了;

方法2:替换

  1. 光标移动到当前行,输入 :.,+3s/^/#/g
  2. 回车,OK;

解释一下这里的替换命令,点**.表示当前行,,是分隔符,+3表示从当前行到它之后的3行,也就是一共4行要进行替换操作,s是正则替换的开始,g是正则替换的结束,^表示一行的开头,/是分隔符,表示把每一行的开头替换成为注释符号#。假如想要添加 // 这样的注释符,则分隔符要用#,这样就不需要对/**转义了,如 **:.,+3s#^#//#g就是把当前行和它下面的3行都添加//**注释。

二. 替换操作解析

上面已经简单介绍了替换操作的参数,实际它的参数可以是这样的: :8,23s/aa/bb/g

| 命令 | 作用 | | -- | -- |
|set nu(或者set number) | 显示行号 |
|set nonu(或者set nonumber) | 隐藏行号 | |set numberwidth=1| 设置行号的宽度,为1就是紧贴在左边 |

下面是一些替换的例子:

命令

作用

:s/aa/bb/g

将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb

:s/\<aa\>/bb/g

将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词

:%s/aa/bb/g

将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb

:12,23s/aa/bb/g

将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb

:12,23s/^/#/

将从12行到23行的行首加入 # 字符

:%s= *$==

将所有行尾多余的空格删除

:g/^\s*$/d

将所有不包含字符(空格也不包含)的空行删除.

三. 缩进

自动对当前行缩进可以使用==命令,如果想对当前行及以下的n行自动缩进,使用n==命令,对全文自动缩进使用gg=G命令。在visual mode下,也可以选择想要自动缩进的行,然后按==

关于vim的一些使用还可以参考这篇博客