Vim 普通模式 好用指令 筆記


建立時間: 2023年4月14日 21:14
更新時間: 2024年9月30日 08:43

說明

將我所學到好用的普通模式指令寫在這篇文章中,但有些普通模式指令會寫在其他 Vim 的文章,每篇文章都會有一個主題,有興趣的讀者可以多關注 Enjoy 軟體分享的文章。

本篇會陸續更新,敬請期待。

備註

  • [count]: 通常用來指定操作指令的次數,例如: 2dd 刪除2行,可填可不填。
  • {char}: 任意字元。
  • {motion}: 參考 Vim 移動篇 motion 說明。
  • ["x]: 可自訂暫存器,也可忽略使用默認的暫存器,關於暫存器請參考 Vim 暫存器

!{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 刪除六個單字。


撤銷和重做命令

u

撤銷 [count] 次更改。


CTRL-R

重做 [count] 次被撤銷的更改。


U

撤銷最近對特定行所作的一系列更改,也就是最近作改變的那行。U 自己也算一次改變,因此 U 會撤銷之前的 U


其他命令

CTRL-L

清屏並重畫螢幕。重畫可能稍後發生,在處理預讀入(typeahead) 之後。


觀看次數: 851
commandmodenormalvim普通普通模式模式指令
按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!