1. 程式人生 > >vi/vim編輯器

vi/vim編輯器

Linux vi/vim 編輯器

vi編輯器:全屏的文本編輯器
vi:Visual Interface,可視化界面;
vim相對於vi有更多的新特性:
1.語法著色顯示;
2.更多的命令;
3.歷史記錄;

vi:模式化文本編輯器
    模式:
        編輯模式(命令模式),默認工作模式;
        插入模式(輸入模式),文本信息的自由編輯;在左下角有"Insert"標記;
        ex模式(末行模式),對於編輯器本身某些屬性和功能的設定;也可以進行文本的編輯操作;

        其他輔助模式:
            替換模式:輸入的信息直接替換光標所在位置的內容;
            可視化模式:

vi/vim的操作:
    一.打開vi/vim操作界面:
        1.vi/vim命令;
        2.vim file:
            1) file存在,就直接使用vim編輯器打開此文件,默認是將光標放置於該文件的起始位置,即:第一行的第一個字符;
            2) file不存在,就直接以新建文件的方式打開;若執行保存命令,則文件會被寫入磁盤;若不保存,則文件會消失;
        3.vim +# file:
            在打開指定文件時,將光標直接定位在文件的第#行的行首;如果給定的數字比文件的行數要大,則光標直接停留在最後一行的行首;
        4.vim + file:
            在打開指定文件時,直接將光標定位在文件的最後一行的行首;
        5.vim +/PATTERN/:
            在打開指定文件時,將光標定位在首次被PATTERN匹配到的行的行首;

    二.關閉vi/vim的操作界面:
        ex模式中的操作:
            :q
                直接關閉vim編輯器,不保存修改內容;
            :q!
                直接關閉vim編輯器,強制退出但不保存修改的內容;
            :wq
                保存已修改的內容,並關閉vim編輯器;
            :wq!
                對於無權更改的文件強制保存,並且在強制保存之後強制關閉vim編輯器;

        編輯模式中的操作:
            ZZ:保存並關閉vim編輯器;
            ZQ:不保存已經修改的內容,直接關閉vim編輯器;

    三.在vim的編輯模式中,光標的移動方式:
        編輯模式中的光標移動操作:
            1.逐字符移動:
                1) Left Arrow 或者 Right Arrow;
                2) h:光標向左移動;l:光標向右移動;
            2.逐字移動:
                w:移動光標至下一個字的字首;
                e:移動光標至當前字或下一字的字尾;
                b:移動光標至前一字的字首;
            3.行內光標跳轉:
                0:絕對行首;
                ^:相對行首;
                $:絕對行尾;
            4.行間跳轉:
                1) Up Arrow 或者 Down Arrow;
                2) j:向下移動一行;k:向上移動一行;
                3) #G:直接將光標移動至第#行行首;
                4) G:直接將光標移動至文檔的最後一行;
                5) gg:直接將光標移動至文檔的第一行;
        ex模式中的光標移動:
            :# :直接將光標移動至指定行號"#"的行首;
            :1 :直接將光標移動至文檔的第一行行首;
            :$ :直接將光標移動至文檔的最後一行行首;

    四.翻頁:
        PageDown 或 PageUp可以實現翻頁;
        ^+f:向下翻一頁,向前翻一頁;相當於Pgdn;
        ^+b:向上翻一頁,向後翻一頁;相當於PgUp;
        ^+d:向下翻半頁;
        ^+u:向上翻半頁;

    五.刪除字符:
        編輯模式中的操作:
            1.逐字符刪除:
                x:刪除光標所在位置的字符;
                X:刪除光標所在位置的左側的一個字符;
            2.刪除光標移動過程中經過的所有內容:
                d:刪除光標移動過程中經過的所有內容:

                dh, dl, dj, dk, dArrow, dw, de, db, dG, dgg, d0, d$, d^
                dd:刪除當前光標所在行;

        ex模式中的操作:
            :d :刪除光標所在行;相當於:.d ;其中"."指的是當前行;
            :#d :刪除第#行;
            :m,nd :刪除從第m行開始,到第n行結束中間的所有行;
            :m,+nd :刪除從第m行開始,及其後面n行的內容;
            :.,+nd :刪除從當前光標所在行開始,及其後面n行的內容;
            :.,$d :刪除從當前光標所在行開始,到文檔末尾的所有內容;

        註意:在vim的操作中,所有的刪除操作,同時意味著剪切;

    六.復制命令
        編輯模式中的操作:
            y:復制光標移動過程中經過的所有內容:

            yh, yl, yj, yk, yArrow, yw, ye, yb, yG, ygg, y0, y$, y^
            yy:復制當前光標所在行;
        ex模式中的復制:
            :y :復制光標所在行;相當於:.d ;其中"."指的是當前行;
            :#y :復制第#行;
            :m,ny :復制從第m行開始,到第n行結束中間的所有行;
            :m,+ny :復制從第m行開始,及其後面n行的內容;
            :.,+ny :復制從當前光標所在行開始,及其後面n行的內容;
            :.,$y :復制從當前光標所在行開始,到文檔末尾的所有內容;

    七.粘貼命令:
        編輯模式中的操作:
            p(Lower):如果是行內的復制或剪切操作,在光標右側完成粘貼;如果是多行的復制或剪切操作,在光標的下方完成粘貼;
            P(Upper):如果是行內的復制或剪切操作,在光標左側完成粘貼;如果是多行的復制或剪切操作,在光標的上方完成粘貼;
        ex模式的操作:
            :p

    八.模式切換:
        編輯模式(命令模式)被稱為vi編輯器的基礎工作模式;所有其他模式之間進行切換的中轉站

        1.編輯模式-->ex模式:
            ":" :表示進入ex模式並完成命令的執行;
            "/"或"?" :開啟ex模式中的匹配查找功能;
                /默認是自上而下的查找順序;
                ?默認是自下而上的查找順序; 

                n和N命令在各個匹配的關鍵字之間跳轉;
                n:順序查找
                N:倒序查找

        2.ex模式-->編輯模式:
            雙擊ESC鍵;
            Enter鍵
            Backspace鍵

        3.編輯模式-->輸入模式(插入模式):
            i, I, a, A, o, O, s, S, C, cc
            i:在光標所在位置的左側開始輸入;
            I:在行首開始輸入;
            a:在光標所在位置的右側開始輸入;
            A:在行尾開始輸入;
            o:在當前光標所在行的下方插入一個新行;
            O:在當前光標所在行的上方插入一個新行;
            s:刪除光標所在位置的字符,在光標左側開始輸入;
            S:刪除光標所在行,在行首開始輸入;
            C:刪除光標所在位置直到行尾,並且在行尾開始輸入;
            cc:相當於S命令;

        4.輸入模式-->編輯模式:
            ESC鍵

        5.編輯模式-->替換模式:
            R:進入替換模式

        6.替換模式-->編輯模式:
            ESC鍵

        7.編輯模式-->可視化模式:
            v:按照字符為單位進行矩形選取;
            V:按照行為單位進行矩形選取;

            註意:
                1) 在選取完成之後,可以使用d命令進行刪除,也可以使用y命令進行復制;
                2) 只要選取完成,即立刻返回編輯模式;

        註意:所有的其他模式都只能和編輯模式相互切換;如果兩種非編輯模式之間試圖切換,則必須經過編輯模式;

    九.替換命令:
        r:不進入輸入模式而替換光標所在位置的字符;

    十.撤銷命令:
        U:撤銷當前行內的操作;
        u:撤銷此前的一次編輯操作;

        ^+r:撤銷最後一次被撤銷的操作;

    十一.重復之前的一次編輯操作:
        .

    十二.多文檔編輯:
        1.vim file1 file2 file3 ...
            :next 查看或編輯後一個文檔
            :prev 查看或編輯前一個文檔
            :first 查看或編輯第一個文檔
            :last 查看或編輯最後一個文檔

        2.vim -o | -O file1 file2 file3 ...
            -o:水平打開多個窗口
                ^+w, up arrow | down arrow:在多個窗口間切換;
            -O:垂直打開多個窗口
                ^+w, left arrow | right arrow:在多個窗口間切換;

    十三.ex模式中的常用命令:
        1.顯示和取消行編號:
            :set number(簡寫為:set nu)
            :set nonumber(簡寫為:set nonu)

        2.開啟或關閉字符大小寫的敏感度:
            :set ignorecase(簡寫為:set ic)
            :set noignorecase(簡寫為:set noic)

        3.開啟或關閉自動縮進功能:
            :set autoindent(簡寫為:set ai)
            :set noautoindent(簡寫為:set noai)

        4.開啟或關閉語法著色:
            :syntax on
            :syntax off

        5.開啟或關閉查找高亮顯示:
            :set hlsearch
            :set nohlsearch(簡寫為:nohl)

        6.另存為:
            :w /path/to/somewhere
            :m,nw /path/to/somewhere

        7.從其他文件直接讀取內容並添加到當前文件中:
            :r /path/from/somefile

        8.與shell交互,調用shell命令
            :!COMMAND

    十四.vimtutor
      可以查看以上十三種命令

vi/vim編輯器