Linux-Vim編輯器之查詢與替換

戈壁樓蘭發表於2016-09-18

一、字元的替換及撤銷(Undo操作)

- Change Delete Yank(copy)
Line(一行) cc dd yy
Letter(字母) cl dl yl
Word(單詞) cw dw yw

命令 功能
r+<待替換字母> 將遊標所在字母替換為指定字母
R 隨游標移動,連續替換,直到按下Esc
cc 替換整行,即刪除遊標所在行,並進入插入模式
cw 替換一個單詞,即刪除一個單詞,並進入插入模式
C(大寫) 替換遊標以後至行末
~ 反轉游標所在字母大小寫
u{n} 撤銷一次或n次操作
U(大寫) 撤銷當前行的所有修改
Ctrl+r redo,即撤銷undo的操作

二、快速縮排及調整文字位置

命令 功能
>> 普通模式下,整行將向右縮排
<< 普通模式下,整行向左回退
:ce(center) 命令列模式下,使本行內容居中
:ri(right) 命令列模式下,使本行文字靠右
:le(left) 命令列模式下,使本行內容靠左

普通模式下輸入:進入命令列模式下對shiftwidth值進行設定可以控制縮排和回退的字元數
:set shiftwidth?或者:set sw?

三、字元查詢

命令 功能
/text 往後搜尋text
?text 往前搜尋text
n 搜尋上一次同樣的內容
N 往前(相對)搜尋相同的內容
\* 尋找遊標所在處的單詞
\# 同上,但 \* 是向前(上)找,#則是向後(下)找
g\* \* ,但部分符合該單詞即可
g\# \# ,但部分符合該單詞即可

四、查詢與批量替換

命令 功能
:s/ 表示通過sed命令進行查詢替換
:s/i/- 將本行的第一個i替換為-
:s/i/-/g 最後的一個g表示替換該行的所有i
:1,10s/i/-/g 替換1-10行所有的i為-
:1,$s/i/-/g 末尾行用$表示到檔案末尾

參考資料:
[1] https://www.zybuluo.com/rfish/note/125939

相關文章