Linux學習日記--基礎命令(9)--VIM編輯器

vim編輯器

    簡介
        vi: Visual Interface,文本編輯器

       vim:VIM - Vi IMproved模式化的編輯



            基本模式:
                編輯模式
                輸入模式
                末行模式:

                    內置的命令行接口


            打開文件:
                # vim [OPTION]... FILE...
                    +#: 打開文件後,直接讓光標處於第#行的行首;
                    +/PATTERN:打開文件後,直接讓光標處於第一個被PATTERN匹配到的行的行首;


模式轉換:
                編輯模式 --> 輸入模式
                    i: insert, 在光標所在處輸入;
                    a: append, 在光標所在處後面輸入;
                    o: 在當前光標所在行的下方打開一個新行;
                    I:在當前光標所在行的行首輸入;
                    A:在當前光標所在行的行尾輸入;
                    O:在當前光標所在行的上方打開一個新行;
                    c
                    C

                輸入模式 --> 編輯模式
                    ESC

                編輯模式 --> 末行模式
                    :

                末行模式 --> 編輯模式
                    ESC

            關閉文件:
                :q 退出
                :q! 強制退出,丟棄做出的修改;
                :wq 保存退出
                :x 保存退出
                :w /PATH/TO/SOMEWHERE

                ZZ: 保存退出;

光標跳轉:


            字符間跳轉:
                h, j, k, l
                    h: 左
                    l: 右
                    j: 下
                    k: 上

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

            單詞間跳轉:
                w:下一個單詞的詞首
                e:當前或下一單詞的詞尾
                b:當前或前一個單詞的詞首

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

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

            行間移動:
                #G:跳轉至由#指定行;
                G:最後一行;
                1G, gg: 第一行;

            句間移動:
                )
                (

            段落間移動:
                }
                {

    vim的編輯命令:


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

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

        替換命令(r, replace)
            r: 替換光標所在處的字符

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

                dw
                de
                db

                    #COMMAND

                dd: 刪除光標所在的行;
                    #dd:多行刪除;

        粘貼命令(p, put, paste):
            p:緩衝區存的如果爲整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的後面;
            P:緩衝區存的如果爲整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面;

        複製命令(y, yank):
            y: 複製,工作行爲相似於d命令;
                y$
                y0
                y^

                ye
                yw
                yb

                    #COMMAND

                yy:複製行
                    #yy: 複製多行;

        改變命令(c, change)
            c: 修改
                編輯模式 --> 輸入模式

                c$
                c^
                c0

                cb
                ce
                cw
                    #COMMAND

                cc:刪除並輸入新內容
                #cc:

        其它編輯操作

            可視化模式:
                v: 按字符選定
                V:按行行定

                Note:經常結合編輯命令;
                    d, c, y

            撤消此前的編輯:
                u(undo):撤消此前的操作;
                    #u: 撤消指定次數的操作;

            撤消此前的撤消:
                Ctrl+r

            重複前一個編輯操作:
                .

        翻屏操作:
            Ctrl+f: 向文件尾部翻一屏;
            Ctrl+b: 向文件首部翻一屏;

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


vim中的末行模式:
        內建的命令行接口

        (1) 地址定界
            :start_pos,end_pos
                #: 具體第#行,例如2表示第2行;
                #,#: 從左側#表示行起始,到右側#表示行結尾;
                #,+#: 從左側#表示的行起始,加上右側#表示的行數;
                .: 當前行
                $: 最後一行
                    .,$-1
                %:全文, 相當於1,$

                /pat1/,/pat2/:
                    從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束;
                    #,/pat/
                    /pat/,$

            使用方式:
                後跟一個編輯命令
                    d
                    y
                    w /PATH/TO/SOMEWHERE: 將範圍內的行另存至指定文件中;
                    r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有內容;

        (2) 查找
            /PATTERN:從當前光標所在處向文件尾部查找;
            ?PATTERN:從當前光標所在處向文件首部查找;
                n:與命令同方向;
                N:與命令反方向;

        (3) 查找並替換
            s: 在末行模式下完成查找替換操作
                s/要查找的內容/替換爲的內容/修飾符
                    要查找的內容:可使用模式
                    替換爲的內容:不能使用模式,但可以使用\1, \2, ...等後向引用符號;還可以使用“&”引用前面查找時查找到的整個內容;
                    修飾符:
                        i: 忽略大小寫
                        g: 全局替換;默認情況下,每一行只替換第一次出現;

                :% s/proc/

&

/g  將全局的proc 換成

proc


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


        多文件模式:
            vim FILE1 FILE2 FILE3 ...
                :next 下一個
                :prev 前一個
                :first 第一個
                :last 最後一個

                :wall 保存所有
                :qall 退出所有

        窗口分隔模式:
            vim -o|-O FILE1 FILE2 ...
                -o: 水平分割
                -O: 垂直分割

                在窗口間切換:Ctrl+w, Arrow

        單文件窗口分割:

            Ctrl+w,s: split, 水平分割
            Ctrl+w,v: vertical, 垂直分割

        定製vim的工作特性

            配置文件:永久有效
                全局:/etc/vimrc
                個人:~/.vimrc

            末行:當前vim進程有效

            (1) 行號
                顯示:set number, 簡寫爲set nu
                取消顯示:set nonumber, 簡寫爲set nonu
            (2) 括號匹配
                匹配:set showmatch, 簡寫爲set sm
                取消:set nosm
            (3) 自動縮進
                啓用:set ai
                禁用:set noai
            (4) 高亮搜索
                啓用:set hlsearch
                禁用:set nohlsearch
            (5) 語法高亮
                啓用:syntax on
                禁用:syntax off
            (6) 忽略字符的大小寫
                啓用:set ic
                不忽略:set noic

            獲取幫助:
                :help
                :help subject


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