在这记录一下我在使用vim时,常常用到的或者觉得有趣的功能。

1、二进制编辑
:%!xxd
:%!xxd -r

2、编码与字体
Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下:
* encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。默认是根据你的locale选择.用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。你可以用另外一种编码来编辑和保存文件,如你的vim的encoding为utf-8,所编辑的文件采用cp936编码,vim会 自动将读入的文件转成utf-8(vim的能读懂的方式),而当你写入文件时,又会自动转回成cp936(文件的保存编码).
* fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
* fileencodings: Vim自动探测fileencoding的顺序列表, 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
* termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。如果vim所在的term与vim编码相同,则无需设置。如其不然,你可以用vim的termencoding选项将自动转换成term 的编码.这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

3、块编辑
ctrl + q 在Windows下
I命令插入

4、高亮显示
如果扩展名正确,Windows下的gvim已经可以高亮显示。


5、自动折行和自动换行
自动换行是每行超过 n 个字的时候 vim 自动加上换行符
:set textwidth=70

自动折行 是 把长的一行用多行显示 , 不在文件里加换行符
:set wrap 设置自动折行
:set nowrap 设置不自动折行

如果一行过长,需要折行20次才能显示完,此时的vim窗口只能显示10行时,可能会出现多行@的情况。表示下一行显示不下。

6、行间距太小,有点拥挤,可以用下面这个命令调整行间距。
set linespace=6