在跨平台工作中由于不同编辑器处理换行和空白字符风格不一致, 常常在Vim下会看到一些特殊字符。 本文帮你解决不可见字符的查找、替换、输入等问题。
非可见字符表
在vim中输入以下命令。可以查看支持的不可见字符,如下表。
:help digraph-table
char digraph hex dec official name ^@ NU 0x00 0 NULL (NUL) ^A SH 0x01 1 START OF HEADING (SOH) ^B SX 0x02 2 START OF TEXT (STX) ^C EX 0x03 3 END OF TEXT (ETX) ^D ET 0x04 4 END OF TRANSMISSION (EOT) ^E EQ 0x05 5 ENQUIRY (ENQ) ^F AK 0x06 6 ACKNOWLEDGE (ACK) ^G BL 0x07 7 BELL (BEL) ^H BS 0x08 8 BACKSPACE (BS) ^I HT 0x09 9 CHARACTER TABULATION (HT) ^@ LF 0x0a 10 LINE FEED (LF) ^K VT 0x0b 11 LINE TABULATION (VT) ^L FF 0x0c 12 FORM FEED (FF) ^M CR 0x0d 13 CARRIAGE RETURN (CR)
如何查看特殊字符
" 显示隐藏字符 :set list " 不显示隐藏字符 :set nolist
如何输入这些不可见字符
vim提供了两种输入这些特殊字符的方法。
二合字母法
这种方法,在输入特殊字符时,需要在编辑模式下先输入前导符 (ctrl + k), 然后再依次输入 :help digraph-table 表中第二列的两个字符,注意区分大小写,如输入换行 ctrl+kCR。效果如下。
键入 ctrl+k
会显示 ?
继续键入CR
会显示 ^M
字符编码法
在vim编辑模式下输入
<Ctrl-v>u5e38<Ctrl-v>u6625<Ctrl-v>u6ce2<Esc>
将会得到 常春波 三个字符。
如何替换这些不可见字符
vim中键入特殊字符替换
在vim中按照上述的方式键入特殊字符即可替换。如下
:%s/^@/^M/g