vim

vi和Vim的三種主要模式:

            命令(Normal)模式:默認模式,移動光標,剪切/粘貼文本

            插入(Insert)或編輯模式: 修改文本

            擴展命令(extended command )模式: 保存,退出等

            * Esc鍵 退出當前模式                * Esc鍵 Esc鍵 總是返回到命令模式

            插入模式 ----ESC  ----> 命令模式 

           命令模式 --------> 擴展命令模式

            擴展命令模式 -----   ESC,enter   ---> 命令模式      

  

命令模式 --> 插入模式

            i:       insert, 在光標所在處輸入

            I:    在當前光標所在行的行首輸入

            a:    (append)在光標所在處後面輸入

            A:  在當前光標所在行的行尾輸入

            o:       在當前光標所在行的下方打開一個新行

            O:   在當前光標所在行的上方打開一個新行

擴展模式:  按“:”進入Ex模式 

            :q        退出

            :q!       強制退出,丟棄做出的修改

            :wq     保存退出

            :x        保存退出

            w        寫(存)磁盤文件

            wq      寫入並退出

            x         寫入並退出

            q        退出

            q!    不存盤退出,即使更改都將丟失

            r filename        讀文件內容到當前文件中

            w filename       將當前文件內容寫入另一個文件

            !command       執行命令

            r!command      讀入命令的輸出

 

命令模式

            ZZ: 保存退出

            ZQ:不保存退出

 

命令模式光標跳轉:

    字符間跳轉:

         h: 左      l: 右         j: 下       k: 上

         #COMMAND:跳轉由#指定的個數的字符

   單詞間跳轉:

         w  :   下一個單詞的詞首

         e  :   當前或下一單詞的詞尾

         b  :  當前或前一個單詞的詞首

        #COMMAND   : 由#指定一次跳轉的單詞數

    當前頁跳轉:

         H   :頁首          M   :頁

    行首行尾跳轉:

           ^   :    跳轉至行首的第一個非空白字符

           0  :    跳轉至行首

           $  :    跳轉至行尾

    行間移動:

           #G、擴展模式,# :跳轉至由#指定行

           G:最後一行

           1G, gg: 第一行

    句間移動:

             ):下一句     (:上一句

    段落間移動:

             }:下一段        {:上一段

命令模式翻屏操作

            Ctrl+f: 向文件尾部翻一屏

            Ctrl+b: 向文件首部翻一屏

            Ctrl+d: 向文件尾部翻半屏

            Ctrl+u:向文件首部翻半屏

 

    字符編輯:

             x    :     刪除光標處的字符

             #x  :     刪除光標處起始的#個字符

            xp   :     交換光標所在處的字符及其後面字符的位置

             ~    :     轉換大小寫

            J      :    刪除當前行後的換行符

    替換命令(r, replace)

            r    :     替換光標所在處的字符

            R    :    切換成REPLACE模式

    刪除命令:

             d    :  刪除命令,可結合光標跳轉字符,實現範圍刪除

             d$    :     刪除到行尾

             d^    :    刪除到非空行首

            d0    :    刪除到行首

            dw    :

            de    :

            db    :     #COMMAND

     dd    :     刪除光標所在的行

     #dd    :多行刪除

     D:從當前光標位置一直刪除到行尾,留空行,等同於d$

複製命令(y, yank) :

             y    :     複製,行爲相似於 d命令

             y$    

             y0    

             y^

             ye   

             yw

             yb    

             #COMMAND yy:複製行 #yy: 複製多行 Y: 複製整行

粘貼命令(p, paste):

    p  :緩衝區存的如果爲整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的後面

    P:緩衝區存的如果爲整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面

改變命令(c, change)

            c: 修改後切換成插入模式 命令模式 --> 插入模式

            c$

            c^

            c0

            cb

            ce

            cw

            #COMMAND 

                 #cc: 

             C:刪除當前光標到行尾,並切換成插入模式

 

       100iwang [ESC] 粘貼“wang”100次

 

      <start position><command><end position>

          起始位置         命令            結束位置

       Command: y 複製、d 刪除、gU 變大寫、gu 變小寫

     例如 :

            0y$ 命令意味着: 0 → 先到行頭 y → 從這裏開始拷貝 $ → 拷貝到本行最後一個字符

             ye 從當前位置拷貝到本單詞的最後一個字符

  地址定界 :start_pos,end_pos

            #具體第#行,例如2表示第2行

            #,# 從左側#表示起始行,到右側#表示結尾行

            #,+# 從左側#表示的起始行,加上右側#表示的行數:2,+3 表示2到5行

            . 當前行

             $ 最後一行 .,$-1 當前行到倒數第二行

            % 全文, 相當於1,$

        /pat1/,/pat2/    從第一次被pat1模式匹配到的行開始,一直到第一次被 pat2匹配到的束                   

        #,/pat/ /pat/,$

        使用方式:後跟一個編輯命令

         d

         y

         w file: 將範圍內的行另存至指定文件中

         r file:在指定位置插入指定文件中的所有內容

查找

         /PATTERN:從當前光標所在處向文件尾部查找

         ?PATTERN:從當前光標所在處向文件首部查找

        n:與命令同方向

        N:與命令反方向

   s: 在擴展模式下完成查找替換操作格式:

                s/要查找的內容/替換爲的內容/修飾符

                  要查找的內容:可使用模式替換爲的內容:不能使用模式,但可以使用\1, \2, ... 等後向引用符號;還可以使用“&”引用前面查找時查找到的整個內容

        修飾符:

             i: 忽略大小寫

             g: 全局替換;默認情況下,每一行只替換第一次出現

            gc:全局替換,每次替換前詢問

    查找替換中的分隔符/可替換爲其它字符,例如 s@/etc@/var@g s#/boot#/#i

  更改 撤銷     

          u撤銷最近的更改

         #u撤銷之前多次更改

         U 撤消光標落在這行後所有此行的更改

         按Ctrl - r重做最後的“撤消”更改

        . 重複前一個操作

         n.重複前一個操作n次

vim 寄存器

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章