Vim 編輯器常用命令

(一)Vim模式

  • vim的三種工作模式:命令模式(Command Mode) 、輸入模式(Input Mode)、末行模式(Last line Mode)
  • 切換的方法:
  • 命令模式下輸入 a、i、o進入輸入模式
  • 輸入模式下按 Esc 進入命令模式
  • 命令模式下輸入 : 進入末行模式
  • 末行模式下指令錯誤則返回命令模式
  • 簡寫記憶:
    • 輸入-->命令:Esc
    • 命令-->輸入:a i o A I O
  • 以下所有命令都是在命令模式

(二)常用Vim命令

  • 這個圖涵蓋了常用的Vim命令
  • 插入文本

    • I —— 在當前行第一個非空字符前插入
    • gI —— 在當前行第一列插入
    • a —— 在光標后插入
    • A —— 在當前行最后插入
    • o —— 在下面新建一行插入
    • O —— 在上面新建一行插入
  • 文檔操作

  • :w —— 保存修改

  • :wq —— 保存并退出

  • ZZ —— 保存并退出

  • :x —— 保存并退出

  • :q[uit] —— 退出當前窗口

  • 刪除

  • x —— 刪除光標所在位置的一個字符

  • nx —— 刪除光標所在位置的后面n個字符

  • dw —— 向后刪除一個單詞

  • db —— 向前刪除一個單詞

  • dd —— 刪除光標所在行

  • ndd —— 刪除從光標所在行開始的n行

  • 移動

  • 0 —— 移動到行首

  • g0 —— 移到光標所在屏幕行行首

  • $ —— 移動到行尾

  • g$ —— 移動光標所在屏幕行行尾

  • ^ —— 移動到本行第一個非空白字符

  • g^ —— 同 ^ ,但是移動到當前屏幕行第一個非空字符處

  • n| —— 把光標移到第n列上

  • nG —— 到特定的行數(n)

  • :n —— 移動到第n行

  • n+ —— 移至游標所在位置之后的第 n 列

  • n- —— 移至游標所在位置之前的第 n 列

  • :$ —— 移動到最后一行

  • gg —— 到文件頭部

  • G —— 到文件尾部

  • f/F+字符 —— 向前/向后移動到特定的字符

  • ( —— 前移1句

  • ) —— 后移1句

  • { —— 前移1段

  • } —— 后移1段

  • j —— 下移一行

  • k —— 上移一行

  • gj —— 移動到一段內的下一行

  • gk —— 移動到一段內的上一行

  • +或Enter —— 把光標移至下一行第一個非空白字符
    上面的操作都可以配合n使用,比如輸入3h, 則光標向左移動3個字符

  • 復制

  • yw —— 復制單詞

  • yf —— 復制當前字符到指定字符

  • yy或Y —— 復制當前行

  • nyy —— 復制當前行開始的n行

  • y[n]w —— 復制1(n)個詞

  • y$ —— 從光標當前位置復制到行尾

  • y0 —— 從光標當前位置復制到行首

  • 剪切

  • d —— 刪除(剪切)在可視模式下選中的文本

  • d$ or D —— 刪除(剪切)當前位置到行尾的內容

  • d[n]w —— 刪除(剪切)1(n)個單詞

  • d0 —— 刪除(剪切)當前位置到行首的內容

  • [n] dd —— 刪除(剪切)1(n)行

  • 粘貼

  • p —— 在光標之后粘貼

  • P —— 在光標之前粘貼

(三)不常用Vim命令

  • 插入文本

    • :r filename —— 在當前位置插入另一個文件的內容
    • :[n]r filename —— 在第n行插入另一個文件的內容
    • :r !date —— 在光標處插入當前日期與時間(同理:r !command可以將其它shell命令的輸出插入當前文檔)
  • 文檔操作

  • :e file —— 關閉當前編輯的文件,并開啟新的文件,如果對當前文件的修改未保存,vi會警告

  • :e! file —— 放棄對當前文件的修改,編輯新的文件

  • :e+file —— 開始新的文件,并從文件尾開始編輯

  • :e+n file —— 開始新的文件,并從第n行開始編輯

  • :enew ——編譯一個未命名的新文檔

  • :e —— 重新加載當前文檔

  • :e! —— 重新加載當前文檔,并丟棄已做的改動

  • :e#或ctrl+^ —— 回到剛才編輯的文件,很實用

  • :f或ctrl+g —— 顯示文檔名,是否修改,和光標位置

  • :f filename —— 改變編輯的文件名,這時再保存相當于另存為

  • gf —— 打開以光標所在字符串為文件名的文件

  • :n1,n2w filename —— 選擇性保存從某n1行到另n2行的內容

  • 刪除

    • x —— 刪除游標所在該字元
    • X —— 刪除游標所在之前的字元
    • r —— 輸入新字元取代(replace)游標所在字元(如:ra將游標所在字元以 a 取代)
    • R —— 進入取代狀態,直到Esc為止
    • s —— 刪除游標所在之字元,并進入輸入模式,直到Esc
    • S —— 刪除游標所在的一行,并進入輸入模式,直到Esc
  • 移動

  • b —— 移動到上個字的第一個字母

  • w —— 移動到下個字的第一個字母

  • e —— 移動到下個字的最后一個字母

  • B —— 移動到上一個單詞開頭,忽略一些標點

  • W —— 移動下一個單詞開頭,但忽略一些標點

  • E —— 移動到下一個單詞末尾,如果詞尾有標點,則移動到標點

  • H —— 移至視窗的第一行

  • M —— 移至視窗的中間那行

  • L —— 移至視窗的最后一行

  • G —— 移至該文件的最后一行

  • + —— 移至下一列的第一個字元處

  • - —— 移至上一列的第一個字元處

  • ctrl+b —— 屏幕后移動一頁

  • ctrl+f —— 屏幕向前移動一頁

  • h或退格 —— 左移一個字符

  • l或空格 —— 右移一個字符

  • ge —— 后移一個單詞,光標停在上一個單詞末尾

  • gE —— 同 ge ,不過‘單詞’包含單詞相鄰的標點

  • tc —— 把光標移到同一行的下一個c字符前

  • Tc —— 把光標移到同一行的上一個c字符后

  • 復制

  • y[n]l —— 復制光標右邊1(n)個字符

  • y[n]h —— 復制光標左邊1(n)個字符

  • :m,ny —— 復制m行到n行的內容

  • y1G或ygg —— 復制光標以上的所有行

  • yG —— 復制光標以下的所有行

  • 剪切

  • d[n]l —— 刪除(剪切)光標右邊1(n)個字符

  • d[n]h —— 刪除(剪切)光標左邊1(n)個字符

  • :m,nd —— 剪切m行到n行的內容

  • d1G或dgg —— 剪切光標以上的所有行

  • dG —— 剪切光標以下的所有行

  • d/f —— 這是一個比較高級的組合命令,它將刪除當前位置到下一個f之間的內容

  • 滾屏

  • ctrl-u —— 文本向下滾到半屏。光標不隨文本移動。相當于文本的窗口上移半屏

  • ctrl-d —— 窗口向下移動半屏,相當于文本向上滾動了半屏

  • ctrl-e —— 向上滾動一行

  • ctrl-y —— 向下滾動一行

  • ctrl-f —— 向前滾動一屏(forward)

  • ctrl-b —— 向后滾動一屏(backward)

  • zt —— 把當前行置于屏幕頂端

  • zb —— 把當前行置于屏幕底

  • zz —— 把當前行置于屏幕中央

  • 標記

  • m{a-z} —— 標記光標所在位置,局部標記,只用于當前文件

  • m{A-Z} —— 標記光標所在位置,全局標記。標記之后,退出Vim, 重新啟動,標記仍然有效

  • {a-z} —— 移動到標記位置

  • '{a-z} —— 移動到標記行的行首

  • {0-9} —— 回到上[2-10]次關閉vim時最后離開的位置

  • `` —— 移動到上次編輯的位置。''也可以,不過``精確到列,而''精確到行 。如果想跳轉到更老的位置,可以按C-o,跳轉到更新的位置用C-i

  • ``"` —— 移動到上次離開的地方

  • ``.` —— 移動到最后改動的地方

  • :marks —— 顯示所有標記

  • :delmarks a b —— 刪除標記a和b

  • :delmarks a-c —— 刪除標記a、b和c

  • :delmarks a c-f —— 刪除標記a、c、d、e、f

  • :delmarks! —— 刪除當前緩沖區的所有標記
    **使用標記可以快速移動。到達標記后,可以用Ctrl+o返回原來的位置。 Ctrl+o和Ctrl+i 很像瀏覽器上的 后退 和 前進 **

  • 查找

    • /something —— 在后面的文本中查找something
    • ?something —— 在前面的文本中查找something
    • /pattern/+number —— 將光標停在包含pattern的行后面第number行上
    • /pattern/-number —— 將光標停在包含pattern的行前面第number行上
    • n —— 向后查找下一個
    • N —— 向前查找下一個
  • 替換

    • :s/old/new —— 用new替換當前行第一個old
    • :s/old/new/g —— 用new替換當前行所有的old
    • :n1,n2s/old/new/g —— 用new替換文件n1行到n2行所有的old
    • :%s/old/new/g —— 用new替換文件中所有的old
    • :%s/^/xxx/g —— 在每一行的行首插入xxx,^表示行首
    • :%s/$/xxx/g —— 在每一行的行尾插入xxx,$表示行尾
  • 分屏編輯

  • vim -o file1 file2—— 水平分割窗口,同時打開file1和file2

  • vim -O file1 file2—— 垂直分割窗口,同時打開file1和file2

  • 排版

    • << —— 向左縮進一個寬度
    • >> —— 向右縮進一個寬度
    • :ce(nter) —— 本行文字居中
    • :le(ft) —— 本行文字靠左
    • :ri(ght) —— 本行文字靠右
  • 拼寫檢查

  • :set spell—— 開啟拼寫檢查功能

  • :set nospell——關閉拼寫檢查功能

  • ]s—— 移到下一個拼寫錯誤的單詞

  • [s——作用與上一命令類似,但它是從相反方向進行搜索

  • z=—— 顯示一個有關拼寫錯誤單詞的列表,可從中選擇

  • zg—— 告訴拼寫檢查器該單詞是拼寫正確的

  • zw—— 與上一命令相反,告訴拼寫檢查器該單詞是拼寫錯誤的

參考文章推薦
Vim 常用命令大全
Linux基礎命令和Vim常用命令

不定期完善中...

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容