version
:version
: 查看一些基本信息, 例如支持的功能;- 如:支持中文编码需要两个特性:
+multi_byte
和+iconv
;
查找结果出现次数
:%s/XXXX//gn
查找不分大小写
/\cstr
: 不分大小写查找 str
替换
%s#abc#123#g
: 把文件中的 abc全部替换成123;(如文件内有#,可用/替换,:%s/abc/123/g
,也就是说,# 可以用别的字符替换,如:/、@ 等):addr1,addr2s/abc/123/g
: 将文件中从 addr1,到addr2 的 abc,替换为123
将当前文件的部分内容另存为另一个文件
- 末行模式 使用w命令
- :w
:addr1,addr2w /path/to/somewhere
- :addr1,addr2s/pattern//gn
- :addr1,addr2s@pattern@newchar@gn
- :addr1,addr2s@pattern@newchar@gi
语法高亮
:syntax on
显示不可见字符
:set invlist
:即可以将不可见的字符显示出来:set nolist
: 可以回到正常的模式
编码
vim "+e ++enc=编码名称" 文件名
:以指定的编码来打开文件:e ++enc=gb2312
:打开文件后发现乱码,更改编码file 文件名
: 可查看文件编码;:set fenc
:已经使用vim 打开时,查看编码:help encoding-values
:列出vim 支持的所有编码- vim 内部使用的是
iconv
库进行编码转换;如果vim 的几个编码选项设置不一致,vim 可能会进行转换(vim 提示converted); - 如果在终端环境下使用vim,需要设置termencoding和终端所使用的编码一致;
编码选项
faq
-
为什么在 vim 中一次只能删除半个汉字?因为encoding设置错误,把encoding设置为cp936就可以解决此问题。在Unix环境下Vim会根据locale来设置默认的encoding,如果没有正确设置locale并且没有设置encoding就会一次只能删除半个汉字。
-
vim 为什么不能输入繁体字?把euc-cn或者GB2312改为cp936就可以了。euc-cn是GB2312的别名,不支持繁体汉字。cp936是GBK的别名,是GB2312的超集,可以支持繁体汉字。
-
vim 为什么提示不能转换?因为在编译Vim时没有加入iconv选项,重新编译Vim才能解决。
-
如何打开一个GBK编码的文件并另存为UTf-8编码?保存文件时运行命令
:set fileencoding=utf-8
就可以了
换行
:set nowrap
: 不自动换行:set wrap
: 自动换行(默认)