vim編輯器

一、簡介

   1.vi:Visual Interface,是一種文本編輯器,所謂文本數據是基於字符編碼的文件,常見的編碼有ASCII編碼,UNICODE編碼等等。

   2.Vim是從vi發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。和Emacs並列成爲類Unix系統用戶最喜歡的編輯器。

    3.Vim的第一個版本由布萊姆·米勒在1991年發佈。最初的簡稱是ViIMitation,隨着功能的不斷增加,正式名稱改成了Vi IMproved。現在是在開放源代碼方式下發行的自由軟件。

二、文本編輯器的種類

    1.行編輯器:所謂行編輯器是指一行一行來編輯處理的工具,如sed。

    2.全屏編輯器:編輯空間佔據整個屏幕,如nano,vi。

三、vim的使用

    1.打開文件

    2.語法:vim [OPTION]... [FILE]...

    3.vim有以下幾種打開方式:

                ①vim +#(後接數字):打開文件後,直接讓光標處於第#行的行首;例如:vim +3 /etc/passed;

                ②vim +/PATTERN(正則表達式):打開文件後,直接讓光標處於第一個被PATTERN匹配到的行的行首;例如:vim +/^U /etc/fstab;

                ③vim + file:直接打開file,光標在最後一行;例如:vim + /etc/fstab;

                ④vim -b file:二進制方式打開文件;例如:vim -b /bin/cat;

                ⑤vim -d file1 file2...:比較多個文件

                ⑥vim -m file:只讀方式打開文件;例如:vim -m /etc/fstab;

    4.如果該文件存在,文件被打開並顯示內容;如果該文件不存在,當編輯後第一次存盤時創建它;

四、vim是一個模式編輯器

    1.vim三種主要模式:

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

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

        擴展命令模式:保存,退出等;

    2.Esc鍵:可以從插入模式轉換到命令模式

五、模式轉換

    1.從命令模式----->插入模式,可使用以下命令:

        i:在當前光標所在處前面輸入;

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

        a:在當前光標所在處後面輸入;

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

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

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

    2.從插入模式----->命令模式:Esc鍵;

    3.命令模式----->擴展模式:直接輸入冒號(:)即可在窗口左下方顯示冒號;

    4.從擴展模式---->命令模式:Esc鍵;

    5.鎖定和解鎖:ctrl+s,ctrl+q;

六、退出文件

    1.擴展模式:

        :q 退出;

        :q! 不保存退出;

        :wq 保存退出;

        :x 保存退出;

        :wq! 強制保存退出;

    2.命令模式

        ZZ:保存退出;

        ZQ:不保存退出;

七、擴展模式

    1.按冒號(:)進入擴展模式:

        r filename:讀文件內容到當前文件中;例如 :r /etc/issue;

        w filename:將當前文件內容寫入另一個文件;例如:w /testdir/f1;

        !command:執行命令;例如:!ls;

        r!command:讀入命令的輸出;例如:r!ls /root;

八、命令模式光標跳轉

    1.字符間跳轉:

        h:左

        l:右

        K:上

        j:下

        #command:跳轉由#指定的個數的字符;例如:#h,#k;

    2.單詞間跳轉:

        w:下一個單詞的詞首;

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

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

        #command:由#指定一次跳轉的單詞數;例如:3w,3e;

    3.當前頁跳轉:

        H:頁首;

        M:頁中間行;

        L:頁底;

    4.行首行尾跳轉:

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

        0:跳轉至行首;

        $:跳轉至行尾;

    5.行間移動:

        #G:直接跳轉至第#行;

        G:最後一行;

        1G,gg:第一行;

    6.句子間移動:

        ):下一句;

        (:上一句;

    7.段落間移動:

        }:下一段;

        {:上一段;

九、命令模式翻屏操作

        ctrl+f:向文件尾部翻一屏;

        ctrl+b:向文件首部翻一屏;

        ctrl+d:向文件尾部翻半屏;

        ctrl+u:向文件首部翻半屏;

十、命令模式操作

    1.字符編輯:

        x:刪除光標處字符;

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

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

        ~:轉換大小寫;

    2.替換命令:

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

        R:切換成REPLACE模式;

    3.刪除命令:

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

        d$:刪除到行尾;

        d^:刪除到非空行首;

        d0:刪除到行首;

        dw:刪除到下一個單詞的詞首;

        de:刪除到當前單詞或下一單詞的詞尾;

        db:刪除到當前單詞或前一單詞的詞首;

        #command:刪除多個單詞;

        dd:刪除光標所在的行;

        #dd:多行刪除;

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

    4.複製命令:

        y:複製,可結合光標跳轉字符,實現範圍複製;

        y$:複製到行尾;

        y0:複製到行首;

        y^:複製到非空行首;

        ye:複製到當前單詞或下一單詞的詞尾;

        yw:複製到下一個單詞的詞首;

        yb:複製到當前單詞或前一單詞的詞首;

        #command:複製多個單詞;

        yy:複製行;

        #yy:複製多行;

        Y:複製整行;

    5.粘貼命令:

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

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

    6.改變命令:

        c:修改,可結合光標跳轉字符,實現範圍修改;所謂修改就是先刪除,再轉換爲插入模式;

        c$:刪除到行尾;

        c^:刪除到非空行首;

        c0:刪除到行首;

        cb:刪除到當前單詞或前一單詞的詞首;

        ce:刪除到當前單詞或下一單詞的詞尾;

        cw:刪除到下一個單詞的詞首;

        #command:刪除多個單詞

        cc:刪除當前行並輸入新內容;

        #cc:刪除多行

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

    7.100iwu [Esc]:含義是粘貼“wu”100次;

    8.語法:<start position> <command> <end position>

        Command:

            y:複製

            d:刪除

            gU:變大寫

            gu:變小寫

        例如:0y$命令含義是:

            0:跳到行首

            y:從這裏開始複製

            $:複製到本行最後一個字符

十一、擴展模式

    1.地址定界

        :start_pos,end_pos

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

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

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

        .:當前行;

        $:最後一行;

        .,$-1:當前行到倒數第二行;

        %:全文,相當於1,$;

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

        #,/pat/:

        /pat/,$:

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

        d:刪除

        y:複製

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

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

    2.查找:

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

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

        n:與命令同方向;

        N:與命令反方向;

    3.查找並替換:

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

        格式:s/要查找的內容/替換爲的內容/修飾符;

        要查找的內容:可使用模式;

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

        修飾符:;

            i: 忽略大小寫

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

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

    注:查找替換中的分隔符/可替換爲其它字符,例如:

        s@/etc@/var@g; 

        s#/boot#/#i;

十二、命令模式

    1.撤銷更改:

        u:撤銷最近的更改;

        #u:撤銷之前多次更改;

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

        ctrl+r:重做最後的“撤消”更改 ;

        .:重複前一個操作;

        n.:重複前一個操作n次;

十三、vim的寄存器

    1.有26個命名寄存器和1個無命名寄存器,常存放不同的 剪貼版內容,可以不同會話間共享。

    2.用a,b,…,z表示,用“寄存器表示,放在數字和命令之間;

            如:3"tyy 表示複製3行到t寄存器中 ;

                "tp  表示將t寄存器內容粘貼;

    3.未指定,將使用無命名寄存器;

    4.有10個數字寄存器,用0,1,…,9表示,0存放最近複製內容,1存放最近刪除內容。當新的文本變更和刪除時,1轉存到2,2轉存到3,以此類推。數字寄存器不能在不同會話間共享。

十四、vim編輯二進制文件

    步驟:

        1.以二進制方式打開文件:

                vim -b binaryfile

        2.擴展命令模式下,利用xxd命令轉換爲可讀的十六進制:

                :%!xxd 

        3.編輯二進制文件;

        4.擴展命令模式下,利用xxd命令轉換回二進制:

                :%!xxd –r 

        5.保存退出;

十五、可視化模式

    1.允許選擇的文本塊:

            v:面向字符;

            V:面向行;

            ctrl+v:面向塊;

    2.可視化鍵可用於與移動鍵結合使用: 

            w, ) , } ,箭頭等;

    3.突出顯示的文字可以被刪除,複製,變更,過濾,搜索/替換等;       

十六、多文件模式

    1.格式:vim file1 file2 file3 ...

        :next 下一個文件;

        :prev 前一個文件;

        :first 第一個文件;

        :last 最後一個文件;

        :wall 保存所有;

        :qwall 退出所有;

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

十七、使用多個窗口

    1.多文件分割:

         格式:vim -o|-O FILE1 FILE2 ...

         -o:水平分割;

         -O:豎直分割;

        在窗口間切換:ctrl+w,arrow(上下左右方向鍵)

    2.單文件窗口分割:

        ctrl+w,s: split,水平分割; 

        ctrl+w,v: vertical,垂直分割; 

        ctrl+w,q:取消相鄰窗口; 

        ctrl+w,o:取消全部窗口;

        :wqall 退出;

十八、定製vim的工作特性

        1.配置文件:

            全局:/etc/vimrc 

            個人:~/.vimrc 

        2.擴展模式:只對當前vim進程有效:

            (1)行號

                顯示:set nu;

                取消顯示:set nonu;

            (2)括號成對匹配

                匹配:set sm;

                取消:set nosm;

            (3)自動縮進

                啓用:set ai;

                禁用:set noai;

            (4)高亮搜索

                啓用:set hlsearch;

                禁用:set nohlsearch;

            (5)語法高亮

                啓用:syntax on;

                禁用:syntax off;

            (6)忽略字符大小寫

                啓用:set ic;

                禁用:ser noic;

            (7)文件格式

                啓用Windows格式:set fileformat=dos;

                啓用Unix格式:set fileformat=unix;

            (8)設置文本寬度

                :set textwidth=65

                :set wrapmargin=15 

        3.vim內置幫助

            (1):help

            (2)Use :q to exit help  

        4.vimtutor(使用手冊) 

            

        

    







       

        










    

       



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