vim編輯器----常用命令

vim編輯器


前沿:vim是一款非常好用的文檔編輯以及編程的好工具,我們來詳細看看

 



打開文件# vim [options] [file ..]

                      +#:打開文件後,直接讓光標處於第#行的行首;

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



模式轉換:

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

    編輯模式 --> 末行模式   按着shit+:

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





        編輯模式:默認模式  可以輸入的命令


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

                          a: append,在光標在處後方輸入;

                          o:在光標所在處的下方打開一個新行;

                          I:在光標所在行的行首輸入;

                          A:在光標所在行的行尾輸入;

                          O:在光標所在處的上方打開一個新行;




    關閉文件:

                    ZZ:保存並退出;

                    :q  退出

                    :q!  強制退出,不保存此前的編輯操作

                    :wq  保存並退出;

                    :w, :q

                    :x  保存並退出;

                    :w /PATH/TO/SOMEFILE


    光標跳轉:

                字符間跳轉

                        h:左

                        j:下

                        k:上

                        l:右

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


                單詞間跳轉

                        w:下一個單詞的詞首;

                        e:當前或後一個單詞的詞尾;

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

                        #COMMAND:跳轉由#指定的個數的單詞;



                行首行尾跳轉

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

                        0:跳轉至行首;

                        $:跳轉至行尾;



                    行間跳轉

                        #G:跳轉至由#指定的行;

                        1G, gg:第一行;

                        G:最後一行;

                   


                     句間跳轉:

                                )

                                (



                    段間跳轉

                                }

                                {



                    翻屏:

                            Ctrl+f:向文件尾翻一屏

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

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

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

                            Enter:按行向後翻







vim的編輯命令:

            


                字符編輯:

                        x:刪除光標所在處的字符;

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

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




                替換命令(replace):

                            r:替換光標所在處的字符; 舉例: rCHAR

                


                 刪除命令:

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

                            d$:

                            d^:

                            dw:

                            de:

                            db:

                            #COMMAND:

                            dd:刪除光標所在處的行;

                            #dd:刪除光標所處的行起始的共#行;




                粘貼命令(p, put, paste):


                    p:緩衝區中的內容如果爲整行,則粘貼在當前光標所在行的下方;

                        否則,則粘貼至當前光標所在處的後方;

                    P:緩衝區中的內容如果爲整行,則粘貼在當前光標所在行的上方;

                        否則,則粘貼至當前光標所在處的前方;





                複製命令(yank, y):

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

                                    y$

                                    y^

                                    y0

                                    ye

                                    yw

                                    yb

                                    #COMMAND

                                    yy:複製一整行

                                    #yy:複製#行




                改變命令(change, c): 編輯模式 --> 輸入模式,實現刪除操作;

                                        c$

                                        c^

                                        c0

                                        cb

                                        ce

                                        cw

                                        #COMMAND

                                        cc:刪除光標所在的行,並轉換爲輸出模式;

                                        #cc:





                其它編輯操作:可視化模式:

                                v:按字符選定;

                                V:按行選定;

                                結合編輯命令使用:d, c, y




                  撤銷(undo)操作:

                                u:撤銷此前的操作;

                                #u:撤銷此前的#個操作;



                撤銷此前的撤銷:

                                Ctrl+r


                 重複執行前一個編輯操作:  .





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

          (1) 地址定界

                :start_pos[,end_pos]

                #:特定的第#行,例如5即第5行;

                .:當前行;

                $:最後一行;

                #,#:指定行範圍,左側爲起始行,右側爲結束行;

                #,+#:指定行範圍,左側爲超始行絕對編號,右側爲相對左側行號的偏移量;

                .,$-1

                1,$

                %:全文 

                /pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行;

                /first/,$

            /pat1/,/pat2/:從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2                匹配到的行結束之間的所有行;



            可同編輯命令一同使用,實現編輯操作:

                    d

                    y

                    c

                    w /PATH/TO/SOMEFILE:將範圍內的文本保存至指定的文件中;

                    r  /PATH/FROM/SOMEFILE:將指定的文件中的文本讀取並插入至指定位置;



        (2) 查找

            /PATTERN:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;

            ?PATTERN:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;

            n:下一個,與命令方向相同;

            N:上一個,與命令方向相反;




        (3) 查找並替換

                s:末行模式的命令;使用格式:

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

                要查找的內容:可使用正則表達式;

                替換爲的內容:不能使用下則表達式,但可以引用;

           如果“要查找的內容”部分在模式中使用分組符號:在“替換爲的內容”中使用後向引用;

                直接引用查找模式匹配到的全部文本,要使用&符號;



            修飾符:

                    i:忽略大小寫;

                    g:全局替換,意味着一行中如果匹配到多次,則均替換;

                        可把分隔符替換爲其它非常用字符:

                    s@@@

                    s###

示例:
    %s@\<t\([[:alpha:]]\+\)\>@T\1@g
    %s@\<t[[:alpha:]]\+\>@&er@g
練習:
1、複製/etc/grub2.cfg文件至/tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中以空白字符開頭的行的行首的空白字符;
%s@^[[:space:]]\+@@
2、複製/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令爲/tmp/functions文件的每個以空白字符開頭的行的行首加上#;
%s@^[[:space:]]\+[^[:space:]]@#&@g
3、爲/tmp/grub2.cfg文件的前三行的行首加上#號;
4、將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換爲enabled=1,所有gpgcheck=0替換爲gpgcheck=1;
%s@\(enabled\|gpgcheck\)=0@\1=1@g




vim的多文件功能:


            vim FILE1 FILE2 ...   多文件:


            在文件間切換:

                    :next  下一個

                    :prev  上一個

                    :first   第一個 

                    :last   最後一個 


            退出所有文件:

                    :wqall 保存所有文件並退出;

                    :wall

                    :qall


            多窗口:

                    -o:水平分割窗口

                    -O:垂直分割窗口



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

            注意:單個文件也可以分割爲多個窗口進行查看:


                Ctrl+w, s:水平分割窗口

                Ctrl+w, v:垂直分割窗口






        定製vim的工作特性:

                                    注意:在末行模式下的設定,僅對當前vim進程有效;

                                    永久有效:全局:/etc/vimrc

                                    用戶個人:~/.vimrc




                1、行號

                    顯示:set number, 簡寫爲set nu

                    取消顯示:set nomber, 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



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