vim使用方法

vim是vi的增強版本,具有比vimi更加強大的功能,對于尤其適合編寫腳本,下面總結一下vim的常用方法。

vim三種工作模式。

        1. 編輯模式:

            以vim打開文件就直接進入此模式,可以在此模式中刪除、復制、粘貼等操作。

            vim使用方法

            vim使用方法

                如上圖所示,使用vim打開/etc/inittab文件,直接進入編輯模式。

        2. 輸入模式:

            在此模式下進行文件內容的輸入和編輯。

            vim使用方法

                看到“INSERT”即進入了輸入模式

        3. 末行模式:

            可以提供查找數據、替換字符、設置vim環境、保存文件等功能。

            vim使用方法

                看到“:”即進入了末行模式。

打開文件:    

    vim [option]…[FILE]   

        當指定的文件存在則打開文件,如果不存在則可以保存為新的文件。

    編輯模式 –> 輸入模式

        當使用vim打開文件時默認進入的是編輯模式,如果想要切換到輸入模式,可以使用以上方法

            i:在光標所在處切換為輸入模式。

            I:光標移至行首切換為輸入模式。

            a:在光標所在處的后方切換為輸入模式。

            A:光標移至行尾切換為輸入模式。

            o:在光標所在處的下方新建一個空行并切換為輸入模式。

            O:在光標所在處的上方新建一個空行并切換為輸入模式。

    輸入模式 –> 編輯模式

        按 ESC 鍵即可由輸入模式回到編輯模式

    編輯模式 –> 末行模式

        直接輸入“:”即可進入末行模式

    末行模式 –> 編輯模式

        按 ESC 鍵可以回到編輯模式

    注:從輸入模式不能直接進入末行模式,必須經由編輯模式方可切換,輸入模式 –> 編輯模式 –> 末行模式 

    vim +# file:打開文件時光標直接處于第#行行首。

              

 退出文件:

     末行模式下

        不保存強制退出

            vim使用方法

        保存退出

            兩種方法效果相同

            vim使用方法

            vim使用方法

        強制保存

            vim使用方法

        強制保存退出

            vim使用方法

    編輯模式下

            輸入ZZ也可以保存退出。

編輯模式

    光標移動

        字符間移動

            h或左箭頭:光標向左移動一個字符

            j或下箭頭:光標向下移動一個字符

            k或上箭頭:光標向上移動一個字符    

            l或右箭頭:光標向右移動一個字符

            一次移動多個字符    #{h|j|k|l}

                eg:輸出3j即可向下移動3行

        單詞間跳轉:

            w:光標移至下一個單詞的詞首

            b:光標移至當前單詞或前一個單詞的詞首

            e:光標移至當前單詞或下一個單詞的詞尾

            一次移動多個單詞    #{w|b|e}

        行內移動:

            ^:光標移至行首(第一個非空字符)

            0:光標移至行首(絕對行首)

            $:光標移至行尾(絕對行尾)

        句子間移動:

            ):下一句的句首

            (:上一句的句首

        段落間移動:

            }:下一段

            {:上一段

        行間移動:

            G:最后一行

            #G:直接跳轉至第#行

            gg:直接跳轉至首行

            #[Enter]:光標向下移動#行

        翻屏操作:

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

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

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

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

    編輯命令

        刪除操作:

            x:刪除光標所在處的字符(相當于[Del]鍵)

            X:刪除光標前面的一個字符(相當于[Backspace]鍵)

            #x:刪除后面的#個字符

            d:刪除命令

                結合光標跳轉字符使用,刪除跳轉范圍內的字符

                    #d+光標跳轉符(w,b,e,$,0,^)

            dd:刪除光標所在行

            dG:刪除從光標所在到最后一行的所有數據

            d1G:刪除光標所在到第一行的所有數據

            D:刪除從光標所在處至行尾的內容,與d$相同

            注意:最后一次刪除的內容會被保存到緩沖區

        復制操作:

            y:復制命令

                結合光標跳轉字符使用,復制跳轉范圍內的字符

                    #y+光標跳轉符(w,b,e,$,0,^)

            yy:復制光標所在的那一行

            #yy:復制光標所在的向下n行

            y1G:復制光標所在行到第一行的所有數據

            yG:復制光標所在行到最后一行的所有數據

            Y:復制光標所在處至行尾的內容,與y$相同        

        粘貼操作        

            粘貼的位置取決于最后一次刪除、復制操作的內容,如果刪除或復制的操作為行則:

                p:粘貼至光標所在行的下方

                P:粘貼至光標所在行的上方

            如果刪除或復制操作為字符或單詞則:

                p:粘貼于當前光標所在處后方

                P:粘貼于當前光標所在處前方

        修改操作

            修改操作可以在進行刪除操作后直接切換為輸入模式

            c:刪除命令

                結合光標跳轉字符使用,刪除跳轉范圍內的字符

                    #c+光標跳轉符(w,b,e,$,0,^)

            cc:刪除光標所在行并切換至輸入模式

            cG:刪除從光標所在到最后一行的所有數據并切換至輸入模式

            c1G:刪除光標所在到第一行的所有數據并切換至輸入模式

            C:刪除從光標所在處至行尾的內容并切換到輸入模式,與c$相同

        撤消編輯

            u:撤消最近一次的操作

            #u:撤消最近的#次操作,最多可撤消50次的內容

        撤消此前的撤消操作

            Ctrl+r

        重復前一條命令

            .

    查找與替換

        /pattern:向下查找與pattern匹配的字符串

        ?pattern:向上查找與pattern匹配的字符串

            n:重復前一個查找的操作。如果使用/進行查找,則n表示向下查找,如果使用?進行查找,則n表示向上查找

            N:與n相反,表示與前一個查找進行反向操作

末行模式

    行間跳轉

        :#[Enter]:光標直接跳轉至第#行

            $:可跳轉至最后一行

    內容定界

        指定起始位置和結束位置來定義內容的范圍

            eg: :20 +3 表示從20行開始的4行

            #:第#行

            .:當前行

            $:最后一行

            %:全文,相當于1,$

                :10,$-1    表示從第10行到倒數第2行

            c,d,y等命令可直接附加在指定的范圍后使用

                :10,$-1 d:表示刪除從第10行到倒數第2行的內容

            w:將指定范圍的內容另存至其它文件

                :.$w /root/test:將從當前行至最后一行的內容另存為/root/test

                如不指定范圍,直接使用w命令,則可將整個文件另存為一個新的文件

            r:在指定位置讀入其它文件的內容

                :.r /root/test:在當前位置讀入/root/test文件內容

        查找與替換

            s/查找模式/要替換成的內容/gic

                查找模式:可以使用正則表達式

                要替換成的內容:不能使用模式,僅能使用引用

                    引用模式匹配到的所有內容可以使用&符號來替代\1等字符

                g:global,全行替換

                    如果不使用g,查找的字符所在行中存在不止一個匹配項時,只替換第一個

                i:不區分字符大小寫

                    :%s/\<file\>/FILE/gi:只替換file單詞,忽略包含在單詞中的file字符,且不區分大小寫

                c:替換前提示用戶確認是否替換,常與g同時使用

    

可視化模式:

    用于選取整塊范圍的模式

    在編輯模式下輸入以下命令:

        v:光標走過的字符都被選中

        V:光標走過的行都被選中

        Ctrl+v:以長方形的方式進行選擇

            vim使用方法

            以上圖為例,將光標移到Default的詞首,按下Ctrl+v鍵,可以看到模式切換為塊選擇,此時選中Default單詞并向下移動光標,與Default字符相對齊的字符都被選中。

        y:將選中的數據復制

        d:將選中的數據刪除

多文件模式

    可以同時打開多個文件,并在各個文件中進行切換

    vim file1,file2……

    :file:列出目前這個vim打開的所有文件

    :n:下一個文件

    :N:上一個文件

    :next:與:n相同

    :previous:與:N相同

    :last:最后一個文件

    :first:第一個文件

    :wqa:保存并退出所有文件

    :wqall:與:wqa相同

多窗口模式

    多文件操作

        vim [option] file1,file2 ……

              [option]:

                    -o:水平分割多個文件

                    -O:垂直分割多個文件

            在已打開的文件中再次的打開一個文件并且以水平分割的方式放置: :sp [filename]

                vim使用方法

                文件默認以水平分割的方式打開

                vim使用方法

            在多個窗口中進行切換:    Ctrl+w,方向鍵

            

    單文件操作

        Ctrl+w,s:水平分割單個文件

        Ctrl+w,v:垂直分割單個文件

            vim使用方法

            首先以將文件水平分割成上面兩個窗口,再把上面的窗口以垂直方式分割成兩個窗口

        :sp:水平分割單個文件

            vim使用方法

窗口屬性定義

    以下操作均在末行模式下進行:

        :set nu:顯示行號

        :set nonu:取消顯示行號

            vim使用方法

        

        :set ai:自動縮進

        :set noai:取消自動縮進     

            設置了自動縮進后,換行時光標會自動對齊上面行的行首位置,而不會回到絕對行首

        

        :set  ic:忽略字符大小寫

        :set noic:取消忽略字符大小寫

            設置此項后在查找字符時會忽略大小,默認關閉

        

        :set sm:顯示與之匹配的括號的另外半邊

        :set nosm:取消顯示與之匹配的辭呈的另外半邊

            vim使用方法

                上圖中將光標移至左中括號時,自動高亮顯示與之匹配的右中括號

 

        :set hlsearch:開啟搜索高亮顯示

        :set nohlsearch:關閉搜索高亮顯示

            vim使用方法

                上圖中搜索f,會自動高亮標識所有的f,此選項會默認開啟,并且即使關閉了當前文件,再次打開其它文件時也會高亮標識之前的搜索結果。

 

        :set syntax= [on|off]:語法高亮顯示控制

                vim使用方法

                    上圖中帶顏色的字符即為開啟語法高亮顯示的結果,可以幫忙用戶標識語法結構,查找語法錯誤,如果關閉此功能則如下圖所示

                vim使用方法

            

        :set all:顯示目前所有環境參數設置值

        :set:顯示與系統默認值不同的設置參數,一般就是用戶改動過的設置

配置文件

    可將屬性命令寫在配置文件中設置vim默認屬性,注釋使用雙引號。

        全局配置文件:/etc/vimrc

        用戶配置文件:~/vimrc

 

            

            

          

                

 

         

       

             

        

原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/1025

(0)
petmasterpetmaster
上一篇 2015-03-18 10:21
下一篇 2015-03-18 18:52

相關推薦

  • 排名三劍客的VIM _正確的打開姿勢!

    vim程序編輯器        vi:是老式的文字處理器。     vi的使用:【vi分為3種模式一般模式、編輯模式、命令模式】         一般模式:   vi打開文件就直接進入到了一…

    Linux干貨 2017-04-10
  • Nginx 常見配置解析

    結構上: 核心模塊:HTTP模塊、EVENT模塊、MAIL模塊。 基礎模塊:HTTP access模塊、HTTP FastCGI模塊、HTTP Proxy模塊、HTTP Rewrite模塊。 第三方模塊:HTTP Upstream Request Hash模塊。 功能上: Handlers…

    Linux干貨 2016-12-05
  • Python裝飾器與面向切面編程

    新年好~ 那么,很久沒有更新了,其實想想也沒多少可以寫的,因為Python的文檔似乎很全面的說……能做的差不多只有翻譯和整理了,英文過關的朋友不妨直接去doc.python.org這里查看相關資料 :) 轉載請注明原作者和原文地址,多謝! 今天來討論一下裝飾器。裝飾器是一個很著名的設計模式,經常被用于有切面需求的場景,較為經典的有插入日志、性能測試、事務處理…

    Linux干貨 2015-03-12
  • LAMP基于編譯安裝方式實現(httpd與php以fastcgi方式結合)3

    概述     在某些現有rpm包不能滿足需求的時候,可能需要編譯安裝LAMP環境,本篇就介紹下php與httpd結合方式為fastcgi方式結合時的編譯安裝,同時,由于httpd與php以module方式結合時,僅是編譯選項有所差別,故也會簡單說明下編譯選項的差異 環境     CentOS7系統,…

    Linux干貨 2016-10-17
  • Linux的發展史

    前言: Linux是什么?    我們知道Linux這玩意兒是在計算機上面運作的,所以說Linux就是一組軟件。問題是這個軟件是操作系統還是應用程序? 且Linux可以在哪些種類的計算機上面運作?而Linux源自哪里?為什么Linux 還不用錢?這些我們都得來談一談先!      計算機系…

    Linux干貨 2016-10-13
  • 位置變量&特殊變量總結

    位置變量 常用的位置變量有 $1, $2, $3 ……,表示命令行傳給腳本的第一個參數,第二個參數,第三個參數。。。 $0 表示腳本的文件名,比如a.sh 位置變量在腳本中的主要作用,是讓腳本通過他們來獲取命令行傳遞給腳本的參數。 變量位置調整 shift [n] 用于調整變量位置 第n+1個位置變量會被重新命名為$1…

    Linux干貨 2016-08-15

評論列表(1條)

  • Linux_love
    Linux_love 2015-03-28 17:46

    mark

欧美性久久久久