一、檢視特殊字元
vim中可見特殊字元會直接顯示,不可見特殊字元會顯示為該字元在命令列的輸入方式, 例如\r顯示為^m。通過:help digraph-table可看到所有vim中可輸入的特殊字元, 該文件的第一頁如下:?
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)
第一列為特殊字元,第二列為digraph(見下文),第三列為十六進製制表示, 第四列為十進位制表示,第五列為該字元的官方名稱。
顯示當前檔案的二進位制編碼可輸入:%!xxd
,該命令會替換檔案內容!恢復::%!xdd -r
。
二、通過digraph輸入
vim中顯然沒有什麼特殊字元選擇工具,但提供了兩種輸入特殊字元的方式:
1、通過兩個字元來輸入乙個特殊字元(digraph)。
2、直接通過編碼值(ascii或unicode)輸入。?
rg
將會出現®字元,其中"rg"是該字元的digraph(雙拼)。 所有的digraph可以通過:help digraph-table
查詢。
三、通過字元編碼輸入
除了digraph,還可直接通過字元編碼來輸入它,該字元不需要在vim的digraph-table中。 這種方式也是在插入模式下進行的,需要先按下前導鍵(windows下<
ctrl-q
>)。
有下列5種方式:
十進位制值ascii:^vnnn (000 <= nnn <= 255)
八進位制值:^vonnn 或 ^vonnn (000 <= nnn <= 377)
十六進製制值:^vxnn or ^vxnn (00 <= nn <= ff)
十六進製制bmp unicode:^vunnnn (0000 <= nnnn <= ffff)
十六進製制任何unicode:^vunnnnnnnn (00000000 <= nnnnnnnn <= 7fffffff)
上述操作都是在unicode字元編碼設定下進行的。例如:?
065
將會輸出a字元,65是它的ascii編碼,而unicode相容ascii。
四、換行的搜尋/替換/輸入
換行在vim中的行為很特殊也不夠一致,需要單獨討論一下。
首先區分一下\r和\n:
前者是回車(carriage return),在vim中可通過cr輸入,顯示為^m。
後者是換行(new line),在vim中通過(回車)鍵輸入,顯示為回車並換行;
所以對於windows風格換行(\r\n)在vim中會在每行結尾顯示^m。
替換
注意使用:s命令替換為換行(new line)時,應當使用\r(相當於回車鍵)而不是\n。 例如將所有逗號替換為換行:?
:%s/,/\r
/g
如果使用\n則目標會被替換為空字元null(顯示為^@)。
將dos風格換行(\r\n)的檔案轉為unix風格換行(\n)其實很簡單,不需要手動查詢替換:?
:
set
fileformat=unix
:w
搜尋
在搜尋模式(/)搜尋換行時仍然應當使用\n字元,因為vim的換行(unix風格)確實是\n而不是\r\n。例如:?
/foo
\nbar
可以匹配到所有的:?
foo
bar
五、檢視不可見字元
除了特殊字元外,ascii字元中還有大量的不可見字元,例如空格回車製表符等。 這些字元可以通過list變數來控制它們的顯示與否:?
" 顯示隱藏字元
:
set
list
" 不顯示隱藏字元
:
set
nolist
" 設定顯示哪些隱藏字元
:
set
listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<
總結
命令中的特殊字元
小知識 表示乙個命令的結束 另乙個命令的開始 在windows中通常將一些正規表示式的基本字元稱為萬用字元,而在linux作業系統中人們則將這些基本字元稱為元字元。使用多個元字元組成的查詢表示式稱為匹配模式,使用匹配模式查詢的過程稱為 模式 匹配 字串引用符雙引號和單引號 雙引號和單引號的主要作用是...
Bash中的特殊字元
行首以 開頭 除 之外 的是注釋。是用於指定當前指令碼的直譯器,我們這裡為bash,且應該指明完整路徑,所以為 bin bash 當然,在echo中轉義的 是不能作為注釋的 vim test.sh輸入如下 並儲存。中文為注釋,無需要輸入 bin bash echo the here dose not...
C 中的特殊字元
特殊字元 c c 語言規範 2.4.4.4 字元 字元表示單個字元,通常由置於引號中的乙個字元組成,如 a character literal 字元 character 字元 character 字元 single character 單字元 escape sequence 簡單轉義序列 hexad...