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
下一篇 2016-08-11

相關推薦

  • 12壓縮與解壓

    在Linux系統中壓縮、解壓以及歸檔的工具主要有一下幾種: file-roller : 這個工具適合在桌面系統下進行解壓操作。 compress/uncompress  :這是一個比較老的解壓工具,壓縮后會添加.Z為后綴 gzip/gunzip : .gz結尾 bzip2/bunzip2 : .bz2 xz/unxz : .xz  zip…

    Linux干貨 2016-11-27
  • Linux入門之常見文本處理工具

    Linux入門之常見文本處理工具 文本內容查看命令 cat   tac    rev  more  less   head   tail 普通文本查看 cat  tac  rev cat 命令 cat  [option]…

    Linux干貨 2016-08-08
  • 【典韋文章】zabbix實現微信報警

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

    Linux干貨 2015-08-24
  • 文本處理課后小練習

    1、找出ifconfig命令結果中本機的所有IPv4地址 [root@wzc date]# ifconfig |grep -E -o  '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]…

    Linux干貨 2016-08-08
  • 【招聘】北京/互聯網/運維工程師/7-15K/雙休,五險一金

    崗位職責:   1、負責服務器的規劃、調試優化、日常監控、故障處理、數據備份、日志分析等工作;   2、參與運維流程制定,確保任何突發情況都能高效響應;  3、負責服務器部署,對服務器構架和網絡進行優化和改進;  4、負責運維相關數據的收集、分析和總結;  5、負責技術運維相關的文檔、手冊…

    Linux干貨 2016-04-05
  • 如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果

    命令別名使用alias命令; ~]#alias NAME='COMMAND' 在一個命令中引用另一個命令的執行結果也是bash的特性之一,引用。 方法:$(COMMAND)

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