Vim 普通模式 好用指令 筆記
分類
建立時間: 2023年4月14日 21:14
更新時間: 2024年4月17日 08:57
說明
將我所學到好用的普通模式指令寫在這篇文章中,但有些普通模式指令會寫在其他 Vim 的文章,每篇文章都會有一個主題,有興趣的讀者可以多關注 Enjoy 軟體分享的文章。
本篇會陸續更新,敬請期待。
備註
[count]
: 通常用來指定操作指令的次數,例如:2dd
刪除2行,可填可不填。{char}
: 任意字元。{motion}
: 參考 Vim 移動篇 motion 說明。["x]
: 可自訂暫存器,也可忽略使用默認的暫存器,關於暫存器請參考 Vim 暫存器。
修改文字
指令 | 動作 |
---|---|
<{motion} |
將 {motion} 跨越的行左移 shiftwidth 列。 |
>{motion} |
將 {motion} 跨越的行右移 shiftwidth 列。 |
CTRL-A |
把當前游標之上或之後的數值或者字母加上 [count] 。 |
CTRL-G |
顯示當前文件名、光標位置和文件狀態。 |
CTRL-R |
重做 [count] 次被撤銷的更改。 |
CTRL-X |
把當前游標之上或之後的數值或者字母減去 [count] 。 |
J |
連接 [count] 行,但至少包含兩行。 |
U |
撤銷最近對特定行所作的一系列更改,也就是最近作改變的那行。 |
["x]D |
刪除游標下的字元到行尾及其後的 [count] -1 行 [到暫存器 x 裡]。 |
["x]P |
貼上複製的內容 [從暫存器 x] 在游標之前 [count] 次。 |
["x]X |
刪除 [count] 個游標之前的字元 [到暫存器 x 裡]。 |
["x]Y |
抽出 [count] 行 [到暫存器 x] (同 yy 動作)。 |
["x]d{motion} |
刪除 {motion} ,儲存 [到暫存器 x 裡]。 |
["x]p |
貼上複製的內容 [從暫存器 x] 在游標之後 [count] 次。 |
["x]x |
刪除 [count] 個游標之下的字元 [到暫存器 x 裡]。 |
["x]y{motion} |
抽出 {motion} 跨越的文本 [到暫存器 x]。 |
gU{motion} |
使 {motion} 跨越的文字成為大寫。 |
gi |
在當前緩衝區最近一次插入模式停止的位置繼續插入文本。 |
gq{motion} |
對 {motion} 動作跨越的行進行排版。 |
r{char} |
把游標下的字元換成 {char} 。 |
u |
撤銷 [count] 次更改。 |
~ |
切換大小寫。 |
!{motion}{filter}
用外部程式 {filter} 過濾 {motion} 跨越的多行。
範例:
!)sort
從游標處到下一個段落進行排序。
查看幫助文件 :help !
!!{filter}
用外部程式 {filter} 過濾 [count] 行。
範例:
5!!sort
從游標處開始算起5行進行排序,同 :.,.+4!sort
。
查看幫助文件 :help !!
動作和運算子
動作命令出現在運算子之後,從而使運算子作用於被該動作所跨越的文字之上。也就是,在動作之前和之後的遊標位置之間的文字。一般的運算子用來刪除或改變文字。
下面列出所有的運算子:
命令 | 說明 |
---|---|
c |
修改 (change) |
d |
刪除 (delete) |
y |
抽出 (yank) 到暫存器 (不改變文字) |
~ |
變換大小寫 (只有當 tildeop 置位時有效) |
g~ |
變換大小寫 |
gu |
變成小寫 |
gU |
變成大寫 |
! |
透過外部程序過濾 |
= |
透過 equalprg (若為空,C-indenting) 過濾 |
gq |
文字排版 |
gw |
文字排版,不移動遊標 |
g? |
ROT13 編碼 |
> |
右移 |
< |
左移 |
zf |
定義折疊 |
g@ |
呼叫 operatorfunc 選項定義的函數 |
動作次數相乘
如果動作包含一個次數而運算子之前也有一個的話,兩者相乘。因此,2d3w
刪除六個單字。
其他
指令 | 動作 |
---|---|
CTRL-L |
刷新本地或遠程目錄列表。 |
ZQ |
退出,不檢查是否發生了修改 (同:q! )。 |
ZZ |
儲存並退出 |
觀看次數: 632
commandmodenormalvim普通普通模式模式指令
相關文章:
一杯咖啡的力量,勝過千言萬語的感謝。
支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!