vim的常見指令

平時最常的指令:

  • 跳轉文件頭:gg(通常模式)
  • 跳轉到文件末尾:shift+g(通常模式)
  • 跳轉到指定行:行號 + gg(通常模式)
  • 多行復制:將光標移動到將要複製的首行處,按nyy複製n行(通常模式)
  • 括號匹配:%
  • 支持鼠標選擇::set mouse=a(複製粘貼:用鼠標選中,而後到須要粘貼的地方小點下鼠標中鍵)

vim的三種模式

  • 通常模式
    1.用戶剛剛啓動Vim,便進入了通常模式
    2.輸入i,進入插入模式;輸入:進入底線命令模式
  • 編輯模式
    1.該模式下可編輯文件。
    2.Esc命令退出編輯模式,進入通常模式
  • 命令模式
    1.Esc命令退出命令模式,進入通常模式

vim 關閉文件

  • :w //保存文件
  • :w vpser.NET //保存至vpser.Net文件
  • :q //退出編輯器,若是文件已修改請使用下面的命令
  • :q! //退出編輯器,且不保存
  • :wq //退出編輯器,且保存文件

移動光標類命令

  • h:光標左移一個字符
  • l:光標右移一個字符
  • k:光標上移一行
  • j:光標下移一行
  • shift+h:光標移至屏幕頂行
  • shift+l:光標移至屏幕最後行
  • ) :光標移至句尾
  • ( :光標移至句首
  • }:光標移至段落開頭
  • {:光標移至段落結尾
  • n+:光標下移n行
  • n-:光標上移n行
  • nG:光標移至第n行首
  • n$:光標移至第n行尾
  • w或W :光標右移一個字至字首
  • b或B :光標左移一個字至字首
  • e或E :光標右移一個字至字尾

刪除命令

  • u :撤銷上一步操做
  • shift+u:撤銷對當前行的全部操做
  • x :刪除當前字符
  • nx:刪除從光標開始的n個字符
  • dd :刪除當前行
  • ndd:向下刪除當前行在內的n行
  • do:刪至行首
  • d$:刪至行尾
  • ndw或ndW:刪除光標處開始及其後的n-1個字

搜索命令

  • /pattern:從光標開始處向文件尾搜索pattern
  • ?pattern:從光標開始處向文件首搜索pattern
  • n:在同一方向重複上一次搜索命令
  • shift+n:在反方向上重複上一次搜索命令

屏幕翻滾類命令

  • Ctrl+u:向文件首翻半屏
  • Ctrl+d:向文件尾翻半屏
  • Ctrl+f:向文件尾翻一屏
  • Ctrl+b;向文件首翻一屏
  • nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部.

插入文本類命令

  • i :在光標前
  • I :在當前行首
  • a:光標後
  • A:在當前行尾
  • o:在當前行之下新開一行
  • O:在當前行之上新開一行
  • r:替換當前字符
  • R:替換當前字符及其後的字符,直至按ESC鍵
  • s:從當前光標位置處開始,以輸入的文本替代指定數目的字符
  • S:刪除指定數目的行,並以所輸入文本代替之
  • ncw或nCW:修改指定數目的字
  • nCC:修改指定數目的行

複製、粘貼

  • yy //將當前行復制到緩存區,也能夠用 "ayy 複製,"a 爲緩衝區,a也能夠替換爲a到z的任意字母,能夠完成多個複製任務。
  • nyy //將當前行向下n行復制到緩衝區,也能夠用 "anyy 複製,"a 爲緩衝區,a也能夠替換爲a到z的任意字母,能夠完成多個複製任務。
  • yw //複製從光標開始到詞尾的字符。
  • nyw //複製從光標開始的n個單詞。
  • y^ //複製從光標到行首的內容。
  • y$ //複製從光標到行尾的內容。
  • p //粘貼剪切板裏的內容在光標後,若是使用了前面的自定義緩衝區,建議使用"ap 進行粘貼。
  • P //粘貼剪切板裏的內容在光標前,若是使用了前面的自定義緩衝區,建議使用"aP 進行粘貼。

文本替換

  • :s/old/new //用new替換行中首次出現的old
  • :s/old/new/g //用new替換行中全部的old
  • :n,m s/old/new/g //用new替換從n到m行裏全部的old
  • :%s/old/new/g //用new替換當前文件裏全部的old

簡單替換表達式

:%s/four/4/g
  • 「%」 範圍前綴表示在全部行中執行替換,最後的 「g」 標記表示替換行中的全部匹配點,若是僅僅對當前行進行操做,那麼只要去掉%便可.
  • 若是你有一個像 「thirtyfour」 這樣的單詞,上面的命令會出錯。這種狀況下,這個單詞會被替換成」thirty4″。要解決這個問題,用 「<」來指定匹配單詞開頭:
:%s/<four/4/g
  • 顯然,這樣在處理 「fourty」 的時候仍是會出錯。用 「>」 來解決這個問題:
:%s/<four>/4/g
  • 若是你在編碼,你可能只想替換註釋中的 「four」,而保留代碼中的。因爲這很難指定,能夠在替換命令中加一個 「c」 標記,這樣,Vim 會在每次替換前提示你:
:%s/<four>/4/gc
  • 單詞精確匹配替換
sed -e "s/<old>/new/g" file

選項設置

  • all:列出全部選項設置狀況
  • term:設置終端類型
  • ignorance:在搜索中忽略大小寫
  • list:顯示製表位(Ctrl+I)和行尾標誌($)
  • number:顯示行號
  • report:顯示由面向行的命令修改過的數目
  • terse:顯示簡短的警告信息
  • warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
  • nomagic:容許在搜索模式中,使用前面不帶「/」的特殊字符
  • nowrapscan:禁止vi在搜索到達文件兩端時,又從另外一端開始
  • mesg:容許vi顯示其餘用戶用write寫到本身終端上的信息

最後行方式命令

  • :n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
  • :n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
  • :n1,n2 d :將n1行到n2行之間的內容刪除
  • :w :保存當前文件
  • :e filename:打開文件filename進行編輯
  • :x:保存當前文件並退出
  • :q:退出vi
  • :q!:不保存文件並退出vi
  • :!command:執行shell命令command
  • :n1,n2 w!command:將文件中n1行至n2行的內容做爲command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容做爲command的輸入
  • :r!command:將命令command的輸出結果放到當前行

寄存器操做

  • 「?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?爲一個字母,n爲一個數字
  • 「?nyw:將當前行及其下n個字保存到寄存器?中,其中?爲一個字母,n爲一個數字
  • 「?nyl:將當前行及其下n個字符保存到寄存器?中,其中?爲一個字母,n爲一個數字
  • 「?p:取出寄存器?中的內容並將其放到光標位置處。這裏?能夠是一個字母,也能夠是一個數字
  • ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。

clipboard.png

  • 推薦博客:
http://blog.csdn.net/namecyf/...
相關文章
相關標籤/搜索