linux中的vim

什么是vim:

    Linux 在命令行下的文本編輯器,很多個別軟件的編輯接口都會主動調用vim,所以在 Linux 的系統中使用文字編輯器來編輯你的Linux參數配置文件,在 Linux 的世界中,絕大部分的配置文件都是以 ASCII 的純文本形態存在,因此利用簡單的文字編輯軟件就能夠修改設置.所有的Unix Like系統都會內置vim文書編輯器,其他的文書編輯器則不一定會存在,vim 具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序設計;因為程序簡單,編輯速度相當快速。

    vim 會依據文件的擴展名或者是文件內的開頭信息,判斷該文件的內容而自動的調用該程序的語法判斷式,再以顏色來顯示程序碼與一般信息。也就是說,這個vim 是個“程序編輯器”!甚至一些Linux基礎配置文件內的語法,都能夠用vim來檢查。


    vim是一個模式化的編輯器,分為編輯模式,輸入模式,末行模式,當然模式的名稱每個人都有自己的見解,紅帽官方命名為,命令模式,編輯模式,擴展命令模式


    基本模式:又叫編輯模式,命令模式,以vim打開一個文件的時候就直接進入編輯模式了,在這個模式中, 你可以使用“上下左右”按鍵來移動光標,你可以使用“刪除字符”或“刪除整列”來處理文件內容, 也可以使用“復制、粘貼”來處理你的文件數據。

    輸入模式:在一般指令模式中可以進行刪除、復制、粘貼等動作,但是卻無法編輯文件內容的! 要等到你按下“i, I, o, O, a,A, r, R”等任何一個字母之后才會進入輸入模式。通常在Linux中,按下這些按鍵時,在畫面的左下方會出現“INSERT或REPLACE”的字樣,此時才可以進行編輯。而如果要回到編輯模式時, 則必須要按下“Esc”這個按鍵即可退出編輯模式。

    末行模式:在編輯模式當中,輸入“:”,就可以將光標移動到最下面那一行。在這個模式當中,可以提供你“搜索數據”的動作,而讀取、存盤、大量取代字符、離開vim、顯示行號等等的動作則是在此模式中達成的!其實就是內置的命令行接口。


使用vim打開文件的正確姿勢:直接vim命令后邊跟上文件名直接就進入編輯模式了。

  vim [options] [file ..]:在vim后跟上選項可以指定光標所處的位置

    +#:打開文件后,直接讓光變處于第#行首

    +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的首blob.png  

        在編輯模式鍵入相對應的鍵位可以改變光標所在位置

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

            a:append;在光標所在處的后方輸入

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

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

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

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


   

關閉文件

    ZZ:保存并退出(在編輯模式)

    :q 退出(在末行模式)

    :q!強制退出,不保存此前的編輯操作(在末行模式)

    :wq保存并退出;(在末行模式)

    :w,q(在末行模式)

    :x保存并退出(在末行模式)

    :w/PATH/TO/SOMEFILE(在末行模式)


光標跳轉:(在編輯模式)

    字符間跳轉

    h,左

     j,下

     k,上

     l,右

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

     單詞間跳轉

     w:下一個單詞的詞首;

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

     e:當前或后一個單詞的詞尾

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


行首行尾跳轉(在編輯模式)

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

    0:跳轉至行首

    $:跳轉至行尾

    行間跳轉

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

    1G:,gg:第一回

    :最后一行

    句間跳轉

    )

    (

    段間跳轉

    }

    {

翻屏:(在編輯模式)

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

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

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

    ctrl+U:向文件首部翻半屏

    Enter:按行向后翻


vim的編輯命令

    字符編輯:(在編輯模式)

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

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

        xp:交換光標所在出的字符與其后面所在符的位置

    替換命令:

        r:替換光標所在處的字符(后邊要跟一個需要換的字符)

        r(char)


    刪除命令:(在編輯模式)

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

        d$:

        d^:

        dw:

        de:

        db:

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

        #cmd:刪除光標所在處的行起始的共#行


    粘貼命令:(在編輯模式)

        p:緩沖區的內容如果為整行,則粘貼在當前光標所在行的下方,否則則粘貼至當前光標所在處的后方

        P:緩沖區的內容如果為整行,則粘貼在當前光標所在行的上方,否則則粘貼至當前光標所在處的前方

    復制命令:(在編輯模式)

        y:復制,工作行為相似與d命令;

        y$

        y^

        y0

        ye

        yw

        yb

        #cmd

        yy:復制一整行

        #yy:復制#行


改變命令:編輯模式–>輸入模式,實現刪除操作;     

    c^

    c$

    c0

    cb

    ce

    cw

    #cmd

    cc:刪除光標所在出的行,并轉換為輸出模式

    #cc


其他編輯操作

    可視化模式:

        v:按字符選定

        V:按行選定

        結合編輯命令;d,c,y

    撤銷操作

        u:撤銷此前的操作

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

    恢復此前的撤銷操作:

        ctrl+r

    重復執行前一個編輯操作

        .


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

    (1):地址定界

        :start_pos[,en_pos]

        #:特點的第#行,例如5即第5行

        .:當前行

        $:最后一行

        #,#:指定行范圍,左側為起始行,右側為結束行

        #,+#:指定范圍行,左側為起始行絕對編號,右側為相對左側行號的偏移量;例如3,+7

        .,$-1

        1,$

        %:全文

        /pattern/:從光標所在處起始第一次被模式匹配到的行

        /pattern1/,/pattern2/:從光標所在處開始,由pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間的所有行和編輯命令

        一同使用,實現編輯作用

        d

        y

        c

        w /path/to/somefile:將范圍內的文本保存至指定的文件中

        r /path/from/somefile:將指定的文件中的文本讀取并插入至指定位置


    (2):查找

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

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

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

        N:上一個,與命令文件相反


    (3):查找并替換

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

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

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

        替換為的內容:不能使用正則表達式,但可引用

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

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

      修飾符:

        i:忽略大小寫;

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

        vim自帶的練習教程:vimtutor

最后配上摘自鳥哥私房菜關于vim的按鍵說明,環境配置圖和同學分享的VIM鍵盤圖

blob.png

blob.png

blob.png

環境配置圖

blob.png

VIM鍵盤圖(這真真是太好了)

vim鍵盤圖高清.png



原創文章,作者:M20-1馬星,如若轉載,請注明出處:http://www.www58058.com/32290

(0)
M20-1馬星M20-1馬星
上一篇 2016-08-11 09:38
下一篇 2016-08-11 11:28

相關推薦

  • Linux三劍客之grep

    grep(Globel Search Regular Expression and Printing out the line)全面搜索正則表達式并把行打印出來)是一個強大的文本搜索工具,使用正則表達式搜索文本的文本,并把結果打印出來。Unix家族包括grep、egrep和fgrep。egrep是擴張的正則表達式它支持更多的字符,fgrep是fast gre…

    Linux干貨 2016-08-12
  • zabbix之報警功能的實現

    一、注冊微信公眾號 首先申請微信公眾平臺https://mp.weixin.qq.com/一個人最多申請5個公眾號,所以還是可以的 申請完之后就可以根據騰訊的提示使用微信公眾號了,然后用你自己的微信掃描關注微信號。 就可以看到用戶數了,接下來的就要使用的用戶的微信ID號了。點擊用戶查看用戶的微信ID號。在瀏覽器查看用戶的微信ID號。就是那個紅色的ID了。 h…

    Linux干貨 2017-03-27
  • bash腳本進階

     shell腳本流程控制     1.if語句 單分支: if 判斷條件;  then ?  雙分支: if 判斷條件; then     條件為真的分支代碼 else     條…

    Linux干貨 2016-08-21
  • ?20151208完成了第二天課程中的第一課:Osey Linux發行版(01)

    完成了第二天課程中的第一課:Osey Linux發行版(01) 今天公司晚上有加班,回來晚了。只完成了第一課:Osey Linux發行版(01) 簡要筆記如下: Linux哲學思想:    1、一切皆文件:             把幾乎所有的資源,包括硬件設備都組織為文件格式;…

    Linux干貨 2015-12-10
  • 遷移用戶數據到獨立分區

    Linux操作系統中,/home目錄下為各個普通用戶的家目錄,主要用于存放用戶的配置信息及相關文件。若安裝操作系統時,采用了home目錄與根目錄處在同一分區的分區策略,那么隨著用戶數據較多,很有可能將分區空間耗盡,導致系統崩潰。所以最好是將用戶數據所在目錄放在一個獨立的分區上,但由于/home目錄下已有一些用戶數據,要想將home目錄建立在一個獨立的分區上,…

    Linux干貨 2017-08-13
  • 相關練習

    1、請使用命令行展開功能來完成以下練習:    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d  mkdir /tmp/{a,b}_{c,d}    (2)、創建/tmp/mylinux目錄下的:  mkdir -pv /tmp/mylinux/{bin,boot/grub,de…

    Linux干貨 2016-11-05
欧美性久久久久