Vi是Linux/Unix上最常用的文本編輯器

Vi是Linux/Unix上最常用的文本編輯器,它的作用是建立、編輯、顯示文本文件。

  Vi沒有菜單,只有命令。

  vi filename 進入命令模式,命令模式進入到插入模式,可使用i、a、o鍵

  1、插入命令

    a  在光標後附加文本

    A  在本行行末附件文本

    i  在光標前插入文本

    I  在本行開始插入文本

    o  在光標下插入文本

    O  在光標上插入文本

  2、定位命令

    h或方向左鍵  左移一個字符

    j或方向下鍵  下移一行

    k或方向上鍵  上移一行

    l或方向右鍵  右移一個字符

    $  移至行尾

    0  移至行首

    H  移至螢幕上端

    M  移至螢幕中央

    L  移至螢幕下端

    :set nu  設置行號

    :set nonu  取消行號

    gg  到第一行

    G  到最後一行

    nG  到第n行

    :n  到第n行

  3、刪除命令

    x  刪除光標所在的字符

    nx  刪除光標所在處後n個字符

    dd  刪除光標所在行

    ndd  刪除n行

    dG  刪除光標所在行導末尾的內容

    D  刪除從光標所在行到末尾的內容

    :n1,n2d  刪除指定範圍的行

  4、複製和剪切命令

    yy或者Y  複製當前行

    nyy或者nY  複製當前行一下n行

    dd  剪切當前行

    ndd  剪切當前行以下n行

    p或者P  粘貼在當前光標所在行下或行上

  5、替換和取消命令

    r  取代光標所在處的字符

    R  從光標所在處開始替換字符,按Esc鍵結束

    u  取消上一步操作

  6、搜尋和替換命令

    /string  向前搜尋指定命令,搜尋時忽略大小寫:set ic ,如搜尋ftp:  /ftp

    n  搜尋指定字符串的下一個出現位置

    :%s/被替換的字符串/替換成的字符創/g  例如把全文的ftp替換成hello  :%s/ftp/hello/g

    :n1,n2s/被替換的字符串/替換成的字符創/g  在一定的範圍內替換字符串

  7、保存退出命令

    :wq 或者 ZZ 保存退出

    :q!  不保存退出

    :wq!  強行保存退出 (root或者文件的所有者)

  8、應用實例

    1)在vi中導入文件 :

      :r 文件

      如:導入/test目錄下的abc.txt文件  :r /test/abc.txt

    2)在vi中執行命令:

      :!命令

      如:在vi編輯器中查看 /test目錄下的文件詳細信息  :!ls -l /test

      這樣就不需要先退出vi再去執行命令

    3)把命令執行的結果導入到vi中:

      如:把date命令執行的結果導入到vi中

      :r !date

    4)定義快捷鍵

      :map 快捷鍵 觸發的命令

      如:  :map ^P I#<ESC>  ^表示定義的快捷鍵,

          注意,在vi中,^這個符號是使用ctrl+v組合輸入的符號,^P 在vi中的輸入是ctrl+v和ctrl+p,或者ctrl+v+p

          :map ^P I#<ESC>  表示光標無論在行的哪個位置,只要按下ctrl+p就可以在行首插入#號,然後回到命令模式。I表示在行首插入文本,<ESC>表示  回到命令模式。

          :map ^E acodeartisan@gmail.com  定義了一個快捷鍵ctrl+e,只要按下ctrl+e就可以在光標位置輸入我的郵箱acodeartisan@gmail.com,非常方便。

          再比如我們要定義一個快捷鍵,無論光標在行的哪個位置,只要按下ctrl+b,就可以去掉行首的#注釋(實際上就是把行首的第一個字符刪掉)

          :map ^B 0x  定義了一個快捷鍵ctrl+b。0表示移到行首,x表示刪除光標所在字符。

    5)連續行注釋

      :n1,n2s/^/#/g  在n1行和n2行之間的行首加入#注釋

      :n1,n2s/^#//g  把n1行和n2行之間的行首的#注釋去掉

    6)替換

      :ab myemail acodeartisan@gmail.com

      只要輸入myemail,然後按回車或者空格,myemail就會變成acodeartisan@gmail.com

      :unab  取消替換操作  

      以上一些快捷鍵、替換命令操作在退出vi後就失效了,是因為vi沒有保存配置。要想配置可以保存,可以把那些命令寫在vi的配置文件中 /root/.vimrc

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場