vim 命令集


vim 命令速查圖片

命令速查卡(一)

命令速查卡(二)

Vim 打開命令

  • vim FileName -- 打開文件 FileName,並將光標置於第一行首
  • vim +n FileName -- 打開文件 FileName,並將光標置於第 n 行首
  • vim + FileName -- 打開文件 FileName,並將光標置於最后一行
  • vim + /pattern File -- 打開文件 File,並將光標置於其中第一個於 pattern 匹配的字符串處
  • vim –r FileName -- 在上次正用 vi 編輯 FileName 發生系統崩潰后,恢復FileName
  • vim File1 … Filen -- 打開多個文件,依次對之進行編輯
  • vim -o File1 … Filen -- 用水平分隔的方式打開多個文件然后進行編輯
  • vimdiff filename1 filename2 -- 用垂直分割的方式打開兩個文件 filename1,filename2 然后顯示出兩個文件的不同的比較

插入模式

vim 補全

  • <c-a> -- 重復上次的編輯動作
  • <c-x><c-l> -- 整行補全
  • <c-x><c-n> -- 根據當前文件里關鍵字補全
  • <c-x><c-k> -- 根據字典補全
  • <c-x><c-t> -- 根據同義詞字典補全
  • <c-x><c-i> -- 根據頭文件內關鍵字補全
  • <c-x><x-]> -- 根據標簽補全
  • <c-x><c-f> -- 補全文件名
  • <c-x><c-d> -- 補全宏定義
  • <c-x><c-v> -- 補全 vim 命令
  • <c-x><c-u> -- 用戶自定義補全方式
  • <c-x><c-s> -- 拼寫建議

普通與命令行模式

移動

ctags 快捷鍵

  • [{ -- 轉到上一個位於第一列的"{"
  • }] -- 轉到下一個位於第一列的"{"
  • { -- 轉到上一個空行
  • } -- 轉到下一個空行 ([ and ] 也分別是兩個指令)

移動光標

  • h -- 向右
  • j -- 向下
  • k -- 向上
  • l -- 向左
  • 0 -- 這是數字 “0”:移動到這一行的最前面字符處
  • ^ -- 移動到這一行的最開始字符處
  • <c-p> -- 光標上移一行
  • <c-n> -- 光標下移一行
  • num+ -- 光標下移到 n 行頭,若沒有 n 光標移到下行行頭
  • num- -- 光標上移到 n 行頭,若沒有 n 光標移到上行行頭
  • num$ -- 光標下移到 n 行尾,若沒有 n 則移動到本行行尾
  • num<Enter> -- 向下移動 n 行,無 n 移動一行
  • H -- 光標移動到這個屏幕的最上方哪一行
  • M -- 光標移動到這個屏幕的中央哪一行
  • L -- 光標移動到這個屏幕的最下方哪一行
  • nG -- n 為數字.移動到這個文件的第 n 行.若沒有 n 則移動到最后一行
  • gg -- 移動到這個文件的第一行,相當於 1G

屏幕滾動

  • <c-f> -- 屏幕“向下”移動一頁,相當於<Page Down>按鍵
  • <c-b> -- 屏幕“向上”移動一頁,相當於<Page Up>按鍵
  • <c-d> -- 屏幕“向下”移動半頁
  • <c-u> -- 屏幕“向上”移動半頁
  • <c-e> -- 屏幕向下滾一行
  • <c-y> -- 屏幕項上滾一行
  • nz -- 將第 n 行滾至屏幕頂部。不指定 n 時將當前行滾至屏幕頂
  • :$ -- 屏幕滾到文章最后一行
  • :0 -- 屏幕滾到文章最開始一行

跳轉

  • W / w -- 光標右移一個字至字首.
  • B / b -- 光標左移一個字至字首.
  • E / e -- 光標右移一個字至字尾.
  • ( -- 光標移到上個句子句首.
  • ) -- 光標移到下個句子句首.
  • { -- 光標移到上個段落句首.
  • } -- 光標移到下個段落句首.
  • f[char] -- 光標跳轉到本行下一個字符 char 處( char 指代任意字符 )
  • F[char] -- 光標跳轉到本行上一個字符 char 處( char 指代任意字符 )
  • t[char] -- 光標跳轉到本行下一個字符 char 的前一個字符處( char 指代任意字符 )
  • T[char] -- 光標跳轉到本行上一個字符 char 的后一個字符處( char 指代任意字符 )
  • /[word] -- 光標跳轉到下一個字符串 word 處,並把所有 word 單詞高亮顯示( word 指代任意字符串,並且可以使用 正則表達式 )
  • ?[word] -- 光標跳轉到上一個字符串 word 處,並把所有 word 單詞高亮顯示( word 指代任意字符串,並且可以使用 正則表達式 )
  • # -- 光標跳轉到下個與光標所在處單詞相同的單詞,並把所有與光標所在處的相同的單詞高亮顯示
  • * -- 光標跳轉到上個與光標所在處單詞相同的單詞,並把所有與光標所在處的相同的單詞高亮顯示
  • gd -- 將與光標所在處的單詞相同的單詞全部高亮顯示,並跳轉到上一個高亮顯示的單詞
  • gD -- 將與光標所在處的單詞相同的單詞全部高亮顯示,並跳轉到最前面一個高亮顯示的單詞
  • `. -- 跳轉至上次編輯位置
  • `c -- 將光標轉移到書簽 c 處( c 為任意字符 )
  • n -- 下一個匹配(如果是/搜索,則是向下的下一個,?搜索則是向上的下一個,但其實它只會在高亮字符中切換)
  • N -- 上一個匹配(同上)

操作

插入操作

  • 行操作
    • I -- 在光標所在行首插入文本
    • A -- 在光標所在行尾添加文本
    • o -- 在光標所在行下面添加一行
    • O -- 在光標所在行上面添加一行
    • nS -- 從當前行開始,刪除向下 n 行並進入編輯模式,若無 n 刪除當前所在行,並進入編輯模式
  • 字符操作
    • i -- 在光標前插入文本
    • a -- 在光標后插入文本
    • r -- 替換光標所在處字符,結束替換
    • R -- 替換多個字符,以按下 [Esc] 鍵標志替換結束
    • ns -- 從當前光標位置處開始,刪除 n 個字符並進入編輯模式,若無 n 刪除一個字符,並進入編輯模式
    • :r [filename | !cmd] -- 在編輯數據中讀入一個文件內容數據或一個命令的返回結果,並把這些數據添加到光標所在行后面

復制與刪除與粘貼

  • 字符操作
    • nx -- 向后刪除 n 個字符,若沒有 n 向后刪除一個字符
    • nX -- 向前刪除 n 個字符,若沒有 n 向前刪除一個字符
    • d0 -- 那個是數字的 0 ,刪除游標所在處,到該行的最前面一個字符
    • d$ -- 刪除游標所在處,到該行的最后一個字符
    • y0 -- 復制光標所在的那個字符到該行行首的所有數據
    • y$ -- 復制光標所在的那個字符到該行行尾的所有數據
    • p -- 將已復制的數據在光標下一列貼上
    • P -- 將已復制的數據在光標上一列貼上
  • 行操作
    • ndd -- 刪除光標所在的向下 n 列,若沒有 n 刪除游標所在的那一整列
    • dnG -- 刪除光標所在到第 n 行的所有數據,若沒有 n 刪除光標所在到最后一行的所有數據
    • nyy -- 復制光標所在的向下 n 行,若無 n 復制游標所在的那一行
    • ynG -- 復制游標所在列到第n行的所有數據,若無 n 復制游標所在行到最后一行的所有數據
    • J -- 將光標所在列與下一列的數據結合成同一列

撤銷與重做

  • . -- 重復前一個操作
  • u -- 復原前一個操作
  • <c-r> -- 重做上一個操作

區塊操作

  • 進入標記文本模式
    • v -- 進入標記文本模式,單字符模式
    • V -- 進入標記文本模式,行模式
    • <c-v> -- 進入標記文本模式,列模式,類似於UE的列模式
  • 對標記文本模式中區域選擇
    • aw -- 選中一個單詞,含單詞后的空格
    • as -- 選中一個句子,含句號后的空格
    • ap -- 選中一個段落,含段落后的空格
    • ab -- 選中()括號中的所有內容,含()
    • aB -- 選中{}括號中的所有內容,含{}
    • iw -- 選中一個單詞,不含單詞后的空格
    • is -- 選中一個句子,不含句號后的空格
    • ip -- 選中一個段落,不含段落后的空格
    • ib -- 選中()括號中的內容,不含()
    • iB -- 選中{}括號中的內容,不含{}
  • 移動標記文本模式中光標位置
    • o -- 光標在選擇區域中的對角線之間的跳轉
    • O -- 光標在選擇區域中的橫縱之間的跳轉
    • 當在 V 與 <c-v> 模式中我們除了 o,O 來移動光標位置外,還可以通過移動光標位置中一些方法來移動光標位置(不是所有而是其中一些)
  • 對標記文本模式中數據操作
    • ~ -- 將選中塊中的內容大小寫翻轉
    • u -- 將選中塊中的內容轉成小寫
    • U -- 將選中塊中的內容轉成大寫
    • y -- 復制選中塊中的內容
    • d/D/x/X -- 刪除選中塊中的內容

行移動操作

  • >> -- 將當前行右移一個單位
  • << -- 將當前行左移一個單位(一個tab符)
  • == -- 自動縮進當前行
  • :n1,n2 co n3 -- 將 n1 行到 n2 行之間的內容拷貝到第 n3 行下.若無『 ,n2』則復制 n1 到 n3 行下
  • :n1,n2 m m3 -- 移動 n1 行到 n2 行之間的內容移至第 n3 行下.若無『 ,n2』則將 n1 內容移到 n3 行下
  • :n1,n2 d -- 刪除 n1 行到 n2 行之間的內容,『 ,n2』則將 n1 行刪除
  • :n1,n2 y -- 復制 n1 行到 n2 行之間的內容,『 ,n2』則將 n1 行復制

字符替換

  • :[range]s/{pattern}/{string}/[flag] [count] 

窗口

打開窗口的命令以下幾個

  • 打開標簽
    • :tabe  標簽名
  • 橫向切割窗口
    • :new    窗口名 (保存后就是文件名) 
    • :split    窗口名 (也可以簡寫為 :sp  窗口名)
  • 縱向切割窗口名
    • :vsplit+窗口名(也可以簡寫為 :vsp+窗口名)

窗口切換

  • <c-w>[h | j | k | l | ←|↓|↑|→]

移動窗口

  • <c-w>t -- 將光標移動到最上方的窗口
  • <c-w>b -- 將光標移動到最下方的窗口

ctags

窗口大小調整

  • 縱向調整
    • <c-w>+ -- 縱向擴大(行數增加)
    • <c-w>- -- 縱向縮小 (行數減少)
    • :res(ize) num  -- 例如::res 5,顯示行數調整為5行
    • :res(ize)+num -- 把當前窗口高度增加num行
    • :res(ize)-num -- 把當前窗口高度減少num行
  • 橫向調整
    • :vertical res(ize) num 指定當前窗口為num列
    • :vertical res(ize)+num 把當前窗口增加num列
    • :vertical res(ize)-num 把當前窗口減少num列

多窗口操作

  • :qa(ll) -- 退出所有窗口,但是如果你有一個窗口發生改寫但未保存 vim 是不會退出的
  • :wa(ll) -- 保存所有修改過的窗口
  • :wqall -- 保存所有修改過的窗口並關閉,然后退出 vim:qall! 強制退出所有窗口,然后退出 vim
  • :argdo [命令] -- 對所有待編輯的窗口都執行 argdo 后面跟的命令
  • :only -- 了編輯以外的窗口,但是那些窗口中要是有文本被改寫過並且沒有保存那么操作將失敗

vim 多文本編輯

  • :n 編輯下個文件
  • :N 編輯上個文件
  • :files  列出目前這個 vim 的打開的所有文件

保存與退出

  • :q -- 退出 vim 返回到 shell,若有修改未被保存,vi 在末行給出提示信息並不退出 vim 到 shell
  • :q! -- 退出 vim 返回到 shell,放棄未保存的修改
  • :x -- 保存后退出,若文件沒有修改的話,不更新文件的修改時間
  • :w -- 將編輯的數據寫入硬盤中
  • :w! -- 若文件屬性為"只讀"時,強制寫入該文件
  • :w filename -- 寫入當前文件到 filename 文件
  • :n1,n2 w filename -- 將 n1 到 n2 的內容保存到 filename 這個文件中
  • ZZ -- 若文件沒有更動,則不保存離開,若文件被更動過,則保存后離開

十六進制查看文本類容

  • :%!xxd -- 按十六進制查看當前文件
  • :%!xxd -r -- 從十六進制返回正常模式

插件快捷鍵

tag 快捷鍵

  • <c-]> -- 跳到當前光標下單詞的標簽
  • <c-o> -- 返回上一個標簽
  • <c-t> -- 返回上一個標簽
  • <c-w>] -- 新窗口顯示當前光標下單詞的標簽,光標跳到標簽處
  • :tag TagName -- 跳到TagName標簽
  • :stag TagName -- 新窗口顯示TagName標簽,光標跳到標簽處

OmniCppComplete
當自動補全下拉窗口彈出后,一些可用的快捷鍵:

  • <c-p> -- 向前切換成員
  • <c-n> -- 向后切換成員
  • <c-e> -- 表示退出下拉窗口, 並退回到原來錄入的文字
  • <c-y> -- 表示退出下拉窗口, 並接受當前選項

winmanager

  • <enter> -- 或雙擊 如果光標下是目錄, 則進入該目錄; 如果光標下文件, 則打開該文件
  • <tab> -- 如果光標下是目錄, 則進入該目錄; 如果光標下文件, 則在新窗口打開該文件
  • <F5> -- 刷新列表
  • - -- 返回上一層目錄
  • c -- 使瀏覽目錄成為vim當前工作目錄
  • d -- 創建目錄
  • D -- 刪除當前光標下的目錄或文件
  • i -- 切換顯示方式
  • R -- 文件或目錄重命名
  • s -- 選擇排序方式
  • r -- 反向排序列表
  • x -- 定制瀏覽方式, 使用你指定的程序打開該文件

書簽

  • mc -- 把當前位置記錄為書簽 c ( c 為任意字符 ) 多個位置的標簽為一樣時,只有最后一個定義的位置標簽會生效
  • `c -- 將光標轉移到書簽 c 處( c 為任意字符 )

執行 shell 命令

  • :sh -- 打開 shell,可執行shell命令,輸入exit退出shell返回到vim
  • :!cmd -- 直接執行 shell ( cmd 表示為任意 shell 命令 )


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM