Vim 編輯器常用命令

(一)Vim模式

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

(二)常用Vim命令

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

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

  • :w —— 保存修改

  • :wq —— 保存并退出

  • ZZ —— 保存并退出

  • :x —— 保存并退出

  • :q[uit] —— 退出當(dāng)前窗口

  • 刪除

  • x —— 刪除光標(biāo)所在位置的一個(gè)字符

  • nx —— 刪除光標(biāo)所在位置的后面n個(gè)字符

  • dw —— 向后刪除一個(gè)單詞

  • db —— 向前刪除一個(gè)單詞

  • dd —— 刪除光標(biāo)所在行

  • ndd —— 刪除從光標(biāo)所在行開(kāi)始的n行

  • 移動(dòng)

  • 0 —— 移動(dòng)到行首

  • g0 —— 移到光標(biāo)所在屏幕行行首

  • $ —— 移動(dòng)到行尾

  • g$ —— 移動(dòng)光標(biāo)所在屏幕行行尾

  • ^ —— 移動(dòng)到本行第一個(gè)非空白字符

  • g^ —— 同 ^ ,但是移動(dòng)到當(dāng)前屏幕行第一個(gè)非空字符處

  • n| —— 把光標(biāo)移到第n列上

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

  • :n —— 移動(dòng)到第n行

  • n+ —— 移至游標(biāo)所在位置之后的第 n 列

  • n- —— 移至游標(biāo)所在位置之前的第 n 列

  • :$ —— 移動(dòng)到最后一行

  • gg —— 到文件頭部

  • G —— 到文件尾部

  • f/F+字符 —— 向前/向后移動(dòng)到特定的字符

  • ( —— 前移1句

  • ) —— 后移1句

  • { —— 前移1段

  • } —— 后移1段

  • j —— 下移一行

  • k —— 上移一行

  • gj —— 移動(dòng)到一段內(nèi)的下一行

  • gk —— 移動(dòng)到一段內(nèi)的上一行

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

  • 復(fù)制

  • yw —— 復(fù)制單詞

  • yf —— 復(fù)制當(dāng)前字符到指定字符

  • yy或Y —— 復(fù)制當(dāng)前行

  • nyy —— 復(fù)制當(dāng)前行開(kāi)始的n行

  • y[n]w —— 復(fù)制1(n)個(gè)詞

  • y$ —— 從光標(biāo)當(dāng)前位置復(fù)制到行尾

  • y0 —— 從光標(biāo)當(dāng)前位置復(fù)制到行首

  • 剪切

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

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

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

  • d0 —— 刪除(剪切)當(dāng)前位置到行首的內(nèi)容

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

  • 粘貼

  • p —— 在光標(biāo)之后粘貼

  • P —— 在光標(biāo)之前粘貼

(三)不常用Vim命令

  • 插入文本

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

  • :e file —— 關(guān)閉當(dāng)前編輯的文件,并開(kāi)啟新的文件,如果對(duì)當(dāng)前文件的修改未保存,vi會(huì)警告

  • :e! file —— 放棄對(duì)當(dāng)前文件的修改,編輯新的文件

  • :e+file —— 開(kāi)始新的文件,并從文件尾開(kāi)始編輯

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

  • :enew ——編譯一個(gè)未命名的新文檔

  • :e —— 重新加載當(dāng)前文檔

  • :e! —— 重新加載當(dāng)前文檔,并丟棄已做的改動(dòng)

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

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

  • :f filename —— 改變編輯的文件名,這時(shí)再保存相當(dāng)于另存為

  • gf —— 打開(kāi)以光標(biāo)所在字符串為文件名的文件

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

  • 刪除

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

  • b —— 移動(dòng)到上個(gè)字的第一個(gè)字母

  • w —— 移動(dòng)到下個(gè)字的第一個(gè)字母

  • e —— 移動(dòng)到下個(gè)字的最后一個(gè)字母

  • B —— 移動(dòng)到上一個(gè)單詞開(kāi)頭,忽略一些標(biāo)點(diǎn)

  • W —— 移動(dòng)下一個(gè)單詞開(kāi)頭,但忽略一些標(biāo)點(diǎn)

  • E —— 移動(dòng)到下一個(gè)單詞末尾,如果詞尾有標(biāo)點(diǎn),則移動(dòng)到標(biāo)點(diǎn)

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

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

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

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

  • + —— 移至下一列的第一個(gè)字元處

  • - —— 移至上一列的第一個(gè)字元處

  • ctrl+b —— 屏幕后移動(dòng)一頁(yè)

  • ctrl+f —— 屏幕向前移動(dòng)一頁(yè)

  • h或退格 —— 左移一個(gè)字符

  • l或空格 —— 右移一個(gè)字符

  • ge —— 后移一個(gè)單詞,光標(biāo)停在上一個(gè)單詞末尾

  • gE —— 同 ge ,不過(guò)‘單詞’包含單詞相鄰的標(biāo)點(diǎn)

  • tc —— 把光標(biāo)移到同一行的下一個(gè)c字符前

  • Tc —— 把光標(biāo)移到同一行的上一個(gè)c字符后

  • 復(fù)制

  • y[n]l —— 復(fù)制光標(biāo)右邊1(n)個(gè)字符

  • y[n]h —— 復(fù)制光標(biāo)左邊1(n)個(gè)字符

  • :m,ny —— 復(fù)制m行到n行的內(nèi)容

  • y1G或ygg —— 復(fù)制光標(biāo)以上的所有行

  • yG —— 復(fù)制光標(biāo)以下的所有行

  • 剪切

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

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

  • :m,nd —— 剪切m行到n行的內(nèi)容

  • d1G或dgg —— 剪切光標(biāo)以上的所有行

  • dG —— 剪切光標(biāo)以下的所有行

  • d/f —— 這是一個(gè)比較高級(jí)的組合命令,它將刪除當(dāng)前位置到下一個(gè)f之間的內(nèi)容

  • 滾屏

  • ctrl-u —— 文本向下滾到半屏。光標(biāo)不隨文本移動(dòng)。相當(dāng)于文本的窗口上移半屏

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

  • ctrl-e —— 向上滾動(dòng)一行

  • ctrl-y —— 向下滾動(dòng)一行

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

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

  • zt —— 把當(dāng)前行置于屏幕頂端

  • zb —— 把當(dāng)前行置于屏幕底

  • zz —— 把當(dāng)前行置于屏幕中央

  • 標(biāo)記

  • m{a-z} —— 標(biāo)記光標(biāo)所在位置,局部標(biāo)記,只用于當(dāng)前文件

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

  • {a-z} —— 移動(dòng)到標(biāo)記位置

  • '{a-z} —— 移動(dòng)到標(biāo)記行的行首

  • {0-9} —— 回到上[2-10]次關(guān)閉vim時(shí)最后離開(kāi)的位置

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

  • ``"` —— 移動(dòng)到上次離開(kāi)的地方

  • ``.` —— 移動(dòng)到最后改動(dòng)的地方

  • :marks —— 顯示所有標(biāo)記

  • :delmarks a b —— 刪除標(biāo)記a和b

  • :delmarks a-c —— 刪除標(biāo)記a、b和c

  • :delmarks a c-f —— 刪除標(biāo)記a、c、d、e、f

  • :delmarks! —— 刪除當(dāng)前緩沖區(qū)的所有標(biāo)記
    **使用標(biāo)記可以快速移動(dòng)。到達(dá)標(biāo)記后,可以用Ctrl+o返回原來(lái)的位置。 Ctrl+o和Ctrl+i 很像瀏覽器上的 后退 和 前進(jìn) **

  • 查找

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

    • :s/old/new —— 用new替換當(dāng)前行第一個(gè)old
    • :s/old/new/g —— 用new替換當(dāng)前行所有的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—— 水平分割窗口,同時(shí)打開(kāi)file1和file2

  • vim -O file1 file2—— 垂直分割窗口,同時(shí)打開(kāi)file1和file2

  • 排版

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

  • :set spell—— 開(kāi)啟拼寫檢查功能

  • :set nospell——關(guān)閉拼寫檢查功能

  • ]s—— 移到下一個(gè)拼寫錯(cuò)誤的單詞

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

  • z=—— 顯示一個(gè)有關(guān)拼寫錯(cuò)誤單詞的列表,可從中選擇

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

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

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

不定期完善中...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 目錄(?)[-] 關(guān)于Vim 1 Vim的幾種模式 啟動(dòng)Vim 文檔操作 光標(biāo)的移動(dòng) 1 基本移動(dòng) 2 翻屏 3 ...
    SunnyLeong閱讀 9,005評(píng)論 0 32
  • vim filename,進(jìn)入文件。按i, a, o 進(jìn)入插入模式,編輯模式。ESC返回命令模式。命令以回車結(jié)束運(yùn)...
    饑人谷_邵征鵬閱讀 394評(píng)論 0 0
  • http://www.cnblogs.com/jiayongji/p/5771444.html 1、vi/vim是...
    Javen205閱讀 2,153評(píng)論 0 2
  • vi/vim是什么? Linux世界幾乎所有的配置文件都是以純文本形式存在的,而在所有的Linux發(fā)行版系統(tǒng)上都有...
    m2fox閱讀 1,135評(píng)論 0 2
  • 1. vim 選擇文本,刪除,復(fù)制,粘貼 文本的選擇,對(duì)于編輯器來(lái)說(shuō),是很基本的東西,也經(jīng)常被用到,總結(jié)如下:v ...
    路癡千行閱讀 3,410評(píng)論 0 0

友情鏈接更多精彩內(nèi)容