Vim 刪除和修改文本篇
分類
說明
本篇主要分享刪除和修改文字的命令。
刪除文本
["x]x
刪除 [count]
個遊標之下和之後的字元 [到暫存器 x
裡]。和 dl
相同。
["x]X
刪除 [count]
個遊標之前的字元 [到暫存器 x
裡]。和 dh
相同。
["x]d{motion}
刪除 {motion}
動作跨越的文字 [到暫存器 x
裡]。
["x]dd
刪除 [count]
行 [到暫存器 x
裡]。
["x]D
刪除遊標所在的字元到行尾及其後的 [count]-1
行 [到暫存器 x
裡]。
和 d$
同義。
J
連接 [count]
行,但至少包含兩行。
刪除縮進,插入不多於兩個的空格。
在緩衝區末行此操作會失敗。
[count]
如果過多,會自行縮減至餘下可用的行。
{Visual}J
連接高亮行,但至少包含兩行。刪除縮進,插入不多於兩個的空格。
gJ
連接 [count]
行,但至少包含兩行。不插入或刪除任何空格。
{Visual}gJ
連接高亮行,但至少包含兩行。不插入或刪除任何空格。
:[range]j[oin][!] [flags]
連接 [range]
範圍的行。和 J
相同,但如有 [!]
時,連接不會插入或刪除任何空格。
如果 [range]
包括相同的開始和結束行,則該指令不做任何事。
預設行為是連接當前行與下一行。
刪除並插入
R
進入替換模式: 每個輸入的字元替代一個現有的字元,從遊標所在的位置開始。重複替換輸入的文字 [count] - 1
次。
["x]c{motion}
將 {motion}
跨過的文字刪除 [到暫存器 x
裡] 並開始插入。
["x]cc
刪除 [count]
行 [到暫存器 x
裡] 並開始插入。
["x]C
從目前遊標位置刪除到行尾,再刪除 [count]-1
行 [到暫存器 x
裡],並開始插入。和 c$
等價。
["x]s
刪除 [count]
個字元 [到暫存器 x
裡],並開始插入。
["x]S
刪除 [count]
行 [到暫存器 x
裡] 並開始插入。和 cc
等價。
備註
- 你可以用
<Esc>
退出插入和替換模式。 {motion}
可以參考 Vim 移動篇。
簡單修改
r{char}
把遊標下的字元換成 {char}
。
~
切換遊標下字元的大小寫,並把遊標向右移。如果給出 [count]
,應用在那麼多數目的字元上。
g~{motion}
切換 {motion}
跨越的文字的大小寫。
g~g~
g~~
切換目前行的大小寫。
gU{motion}
使 {motion}
跨越的文字成為大寫。
gUgU
gUU
使得當前行成為大寫。
gu{motion}
使 {motion}
跨越的文字成為小寫。
gugu
guu
使得當前行成為小寫。
遞增與遞減
CTRL-A
把目前遊標之上或之後的數值或字母加上 [count]
。
CTRL-X
把目前遊標之上或之後的數值或字母減去 [count]
。
將文本左移或右移
<{motion}
將 {motion}
跨越的多行左移 shiftwidth
列。
<<
將 [count]
行左移 shiftwidth
列。
{Visual}[count]<
將高亮行左移 [count]
個 shiftwidth
列。
>{motion}
將 {motion}
跨越的多行右移 shiftwidth
列。
>>
將 [count]
行右移 shiftwidth
列。
{Visual}[count]>
將高亮行右移 [count]
個 shiftwidth
列。
複製並移動文本
["x]y{motion}
抽出 {motion}
跨越的文本 [到暫存器 x
]。
["x]yy
抽出 [count]
行 [到暫存器 x
]。
["x]Y
抽出 [count]
行 [到暫存器 x
] (同 yy
)。
["x]p
[從暫存器 x
] 放置文字在遊標之後 [count]
次。
["x]P
[從暫存器 x
] 放置文字在遊標之前 [count]
次。
["x]gp
如同 p
,但遊標停留在新文字之後,類似 pl
。
["x]gP
如同 P
,但遊標停留在新文字之後,類似 Pl
。
["x]]p
["x]]<MiddleMouse>
類似 p
,但調整目前行的縮排。
["x][P
["x]]P
["x][p
["x][<MiddleMouse>
類似 P
,但調整目前行的縮排。
備註
- 抽出類似於複製,放置類似於貼上。
文本排版
gq{motion}
對 {motion}
動作跨越的行進行排版。
gqgq
gqq
排版目前行。如帶計數排版對應多行。
相關文章:
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!