Vim/Vi 基本上是 *nix 世界最受欢迎的编辑器了,不知道为什么,一直以来觉得和 Emacs 比起来,Vim 更加有亲和力。用起来很舒服。
今天就记录一个困扰了我很久的问题。
执行搜索命令后,如何取消高亮
大家应该都知道,在 Vi 里面如果要搜索某个关键字,只要键入 /xxx
就可以了,比如,我要搜索一个函数,我就键入
/snprintf
然后回车,一个文件中,所有出现这个字样的地方都会被高亮显示。按 n
键,就可以自动把光标跳到下一个,p
可以跳到上一个。
但是,搜索结束后,怎么消除高亮呢,我以前一直不知道,弄得自己也很无奈。
终于在网上看到,只要键入
:noh
这个命令,也可以写成 nohls
,其本质意思是 no highlight search 的意思。你记住了么?
用 Vim 打开文本文件后,中文乱码
我经常下载 txt 格式电子书,但是在 Mac OS 上,下载的电子书经常双击打开就是乱码。这时候,我会用 Vim 打开。如下图的样子:
这个时候,我们可以猜测,这个个乱码有可能是 Windows 常见的那种 GB2312 编码格式,在 Mac 上打开,就会呈现乱码。怎么才能转换过来呢?记住这个魔法指令:
:e ++enc=cp936
这个 Vim 命令 :e ++enc=cp936
用于在 Vim 中重新加载当前编辑的文件,并指定文件的编码为 cp936
。命令的各个部分含义如下:
:e
: 这是:edit
命令的缩写,用于打开文件进行编辑。如果不带任何文件名,:e
或:edit
会重新加载当前正在编辑的文件。++enc=cp936
: 这部分指定了在加载文件时使用的编码。++
是一个选项前缀,用来指定紧随其后的选项(在这种情况下是enc
,即 encoding 的缩写,表示编码)。cp936
是一种字符编码,广泛用于简体中文 Windows 环境中,也被称为 GBK 编码。它是一种用于汉字的扩展字符集,可以表示简体中文中的字符以及多种符号。
使用这个命令的场景通常是当你打开一个文件,并发现里面的文字因为编码问题显示为乱码时。通过使用 :e ++enc=cp936
命令,你可以指定 Vim 以 cp936
(GBK)编码重新加载当前文件,这样文件中的简体中文字符就能正确显示,而不是显示为乱码。
执行完命令之后,我们可以看到:
注意看,状态栏里的编码提示,已经从 latin1
变成了 cp936
,说明我们猜测是正确的,文件已经恢复了不再是乱码了。
请注意,这个命令只影响当前文件的加载方式,不会改变文件的实际编码。如果你想要保存文件并更改其编码,可以使用 :set fileencoding=编码名称
命令,然后保存文件。例如,:set fileencoding=utf-8
会将文件编码设置为 UTF-8,然后你可以用 :w
命令保存更改。
修改文件编码格式的命令可以这么写:
:set fenc=utf-8
为了增加文件的兼容性,可以被 Mac 系统识别,还可以给文件增加 BOM 头:
:set bomb
然后,我们在 Finder 下,选中文件,按空格,就可以正常预览了。