Vim 里的特殊字符处理
问题
在处理某个文件时,发现里面有一些类似 <200b> 这样的特殊字符,需要清理掉。
处理办法
经过搜索,在 Vim 里处理这些特殊字符时,可以使用类似这样的规则来匹配: \%u200b。
这个规则,可以这样来理解和记忆:
\是转义字符;%u是匹配双字节的字符;200b是对应的编码,按实际输入即可;
通过查找手册 :h pattern.txt 以及 :h E678 发现,除了 %u,还有 %d、%o、%x 以及 %U,分别以十进制、八进制、单字节十六进制以及四字节十六进制,来匹配各种字符。
如何输入这样的字符
在 insert 模式下,按 C-v、u,再 200b 即可。
可以查找手册 utf-8-typing。
特殊字符
对于经常用到、但又无法直接输入的 non-ascii 字符,Vim 提供了输入上的优化。
比如 C-k 1c 是输入 ㈠。
光标停留在 ㈠,按 ascii 可以查询到 <㈠> 12832, Hex 3220, Oct 31040, Digr 1c。
所以按之前的方式 C-v u 3220 也可以同样地输入。
使用过程中,可以直接 :digraphs 来查看所有字符,以及对应的输入键。对应的手册可以从 :h digraph.txt 得到。