vim命令彙總

文章首發:http://www.cnblogs.com/sprying/p/3864631.html html

上一次學習vim仍是快一年了,倒騰了一個月以後就沒碰過。如今從新彙總下vim命令。vim

一、有些命令回車後纔有效果緩存

二、vim編輯有三個狀態:Normal、Insert、Visualide

打開文件

Normal模式下學習

  • :e
  • :vi

保存關閉文件

  • :wurl

  • :qspa

  • :wq ZZ 保存和退出code

  • :q! 放棄修改並退出orm

  • :qa! 強制退出全部打開的文件htm

  • :close

  • :close[!] 最後一個窗口不關閉

  • :hide 最後一個窗口不關閉,能夠關閉當前屏幕窗口。

  • :on[ly][!] 除了當前窗口全部其餘窗口都關閉。

緩存操做

  • :ls 顯示緩存
  • :b [filename] 打開緩存文件
  • :bn (n a number) move to nth buffer 打開指定數字的緩存
  • :bp previous buffer 打開上一個緩存
  • :bn next buffer 打開下一個緩存

移動光標

  • w 下一個詞的首字母
  • W 下一個詞(跳過標點)
  • b 當前詞的首字母
  • B 前一個詞(跳過標點)
  • e 當前詞的尾端
  • E 當前詞的尾端(跳過標點)

注意: w e 是以字母、數字、_組成的爲單詞, 若要以blank空格符,用大寫

  • h 左移一字符

  • l 右移一字符

  • j 下移一行

  • k 上移一行

  • gd 調到光標所在詞定義位子go define

  • gg 到文檔頂部

  • G 到文檔底部

  • xgg xG :x 到第x行(x是行號)

  • 10% 移動到文件大約10%的行位置

  • Ctrl + d 下翻半屏

  • Ctrl + u 上翻半屏

  • Ctrl + f 下翻一屏

  • Ctrl + b 上翻一屏

  • Ctrl + g 查看文件url、行數信息

  • H 命令移動光標到視野內的第一行,

  • M 移動到視野內的中部,

  • L 移動光標到視野內的最後一行。

移動屏幕

光標所在的行位不變
  • Ctrl + e 上滾一行

  • Ctrl + y 下滾一行

  • zt 命令將光標所在行移動到屏幕的頂部,

  • zz 命令將光標所在行移動到屏幕的中部,

  • zb 將光標移動到屏幕的底部。

  • nz 回車,將第n行滾動至屏幕頂部

插入

  • i 光標位置前插入
  • I 行首字符前插入
  • a 光標位置後插入
  • A 本行末尾插入
  • o 向下插入一行
  • O 向上插入一行

刪除

  • x dl 光標下的字符

  • X dh 刪除光標前字符

  • dw 刪除當前光標下的詞,由光標位置起,不包括光標位字符

  • db de

  • dnl 向右刪除n個字母

  • dnh 向左刪除n個字母

  • d$ D 刪除光標到行尾

  • dd 刪除當前行

  • dnj 向下刪除n行

  • dnk 向上刪除n行

  • dG 從當前光標位置一直刪除到文件的末尾

  • dgg 從當前光標位置一直刪除到文件的開始

  • 6dw 刪除6個word

  • diw 刪除光標上的單詞(不包括空格)

  • daw 刪除光標上的單詞(包括空格)

  • df 從當前光標位置上的字符一直刪除到指定的字符(包括指定字符)

  • dt 從當前光標位置刪除到指定字符的前一個字符

  • J 刪除換行符,合併兩行

  • %s/\s\+$// 刪除全文行尾空格,%表示做用於整個文件,//表示替換的是空白

  • %s/^\s\+// 刪除全文行首空格

撤銷和重作

  • u 撤銷
  • U ctrl + r 恢復撤銷

自動提示

在Insert模式下,輸入字符,Ctrl pCtrl n代碼提示

修改

cl(s) ch c3w cb ciw caw df dt cc(S) c$(C) cG

複製粘貼

  • yy Y 複製當前行
  • yw 複製當前光標下的詞
  • yG 拷貝到文件的末尾
  • ygg 拷貝到文件的開頭
  • 0y$
  • y2/foo 拷貝2個foo之間的字符串
  • p 粘貼
  • P 粘貼在當前位置以前Go

替換

預約義類 含義
:s/old/new 將當前行中查找到第一個字符」old」串替換爲」new」
:s/old/new/g 將當前行中查找到的全部字符串」old」替換爲」new」
:#,#s/old/new/g 在行號」#,#」範圍內替換全部的字符串」old」爲「new」
:%s/old/new/g 在整個文件範圍內替換全部的字符串」old「爲」new」
:s/old/new/c 在替換命令末尾加入c命令,將對每一個替換動做提示用戶進行確認
  • r 輸入字符替換光標下的字符,而後返回Normal模式, 若是光標選中一段字符,輸入的一個字符會替換選擇。

  • nr 輸入字符會替換光標起的n個字符

  • R 會一直替換,按delete還原。 若是選中幾個字符,則會進入visual模式,刪除當前行,進入Insert模式。

  • :s/p1/p2/g 當前行中全部p1均用p2替代

  • :n1,n2s/p1/p2/g 將第n1至n2行中全部p1均用p2替代

  • g/p1/s//p2/g 將文件中全部p1均用p2替換

搜索

  • /XXXX 搜索xxxx,能夠用n下一個,N上一個,2n下第二個

  • /di 可查找到media

  • /^di 只匹配行首

  • /di$ 只匹配行未

  • /^di$ 僅僅匹配包括di的行並不帶空格

  • /d.i 匹配第一個字符是d,第二個字符任意,第三個是i的字符串

  • /di\. 匹配帶特殊字符.的字符串di.

  • # 向前搜索光標當前所在的字,向後查找當前光標的第2個單詞,能夠輸入」2#「

  • * 向後搜索光標當前所在的字

  • fa 查找當前行光標所在位置的下一個f(ind) a,這裏f可用t

  • Fa 查找當前行光標所在位置的上一個a

標記和宏(macro)

  • ma 將當前位置標記爲a,26個字母均可以做爲標記,mbmc等等

  • ‘a 跳轉到a標記的位置

  • qa 將以後的操做都記錄下來,直到繼續按q

  • @a 執行剛剛記錄在a裏面的鍵盤操做

  • @@ 執行上一次的macro操做

      Ctrl a 數字加1
    
      qaYp<C-a>q
    
      1. qa開始錄製
      2. Yp 複製行.
      3. \<C-a\> 增長1.
      4. q 中止錄製.
      5. @a → 在1下面寫下 2
      6. @@ → 在2 正面寫下3
    
      如今作100@@ 會建立新的100行,並把數據增長到 103.

     

高效編輯

  • di* 光標在""以前或之中,則刪除""之間的內容

  • yi{ 光標在{}以前或之中,則複製{}之間的內容

  • vi[ 光標在[]以前或之中,則選中[]之間的內容 i表明inner,可編輯的光標有 '"()[]{}<>i可替換成a,就連配符號一塊兒操做

  • dtx 刪除字符直到碰見光標以後的第一個x字符

  • ytx 複製字符直到碰見光標以後的第一個x字符

  • :n1,n2 co n3 將n1行到n2行之間的內容拷貝到第n3行下

  • :n1,n2 m n3 將n1行到n2行之間的內容移至到第n3行下

  • :n1,n2 d 將n1行到n2行之間的內容刪除

  • :n1,n2 w!command 將文件中n1行至n2行的內容做爲command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容做爲command的輸入

  • :r!command 將命令command的輸出結果放到當前行

  • 5w 至關於按五次w鍵;

  • 6j 下移6行,至關於按六次j;

  • 3J 大寫J,原本是將下一行與當前行合併,加上數量,就是重複操做3次;

  • 6dw d6w 結果是同樣,就是刪除6個word;

剩下的無數狀況,本身類推吧

顯示頁碼

  • :set nu
  • :set nonu

其它

  • ~ 修改選中的字符的大小寫,原來大寫的轉換成小寫,原來小寫的轉成大寫。在Visual模式和Normal模式下都能生效。 注意,只有tiledeop設置後,這個才能成爲一個操做命令,纔可用該命令與其餘光標移動的命令組合使用。
  • g~ 修改選中的字符的大小寫操做命令,原來大寫的轉換成小寫,原來小寫的轉成大寫。
  • gu 修改選中的字符爲小寫操做命令。
  • gU 修改選中的字符爲大寫操做命令。
  • ! 過濾警告操做命令
  • gq 選中文本格式化,文本拼接組合成句子或段落命令。在Normal模式和Visual模式下都能生效。
  • > 選中文本向右Tab縮進。在Normal模式和Visual模式下都能生效。
  • < 選中文本向左Tab縮進。在Normal模式和Visual模式下都能生效。
  • = 操做:選中文本自動縮進。 按v進入visual狀態,選擇多行,用>或<縮進或縮出
相關文章
相關標籤/搜索