vi編輯器

   vim編輯器是眾多文件編輯軟件中比較好的一個,也是使用最多 ,功能最強大的,提供了圖形化界面。

   Vi:unix系統中默認的文本編輯器

   Vimvi編輯器的增強版本,習慣上也稱vi。

   作用:創建或修改文本文件,維護linux系統的各種配置文件

vim的使用格式:

  vim [選項]…file..

可用選項:

    +#:打文件后,直接讓光標處于低#行的行首

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

 

vim編輯器有三種模式:

                   命令模式:默認進入的是命令模式,在命令模式中可以對文件進行刪除、復制、粘貼等功能,

                   編輯模式:對文件修改編輯

                   擴展模式:對文件保存、退出等

 

三種模式之間的切換:

                   命令模式切換到編輯模式按a A i I o O

                                           a:在光標所在處后面插入

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

                                           i:在光標前插入

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

                                           o:在光標所在行的下一行插入

                                           O:在光標所在行的上一行插入

                   命令模式切換到擴展模式按Shift+:

                   插入模式到命令模式:按ESC

                   擴展模式到命令模式:按ESC

                  

                   ctrl+s 鎖定

                         ctrl+q 解鎖       

命令模式操作:

    

 光標跳轉:

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

      0:跳轉至行首

      $:跳轉至行尾

      #G、擴展模式:跳轉至#

      G:跳轉至最后一行

      1Ggg:跳轉至第一行

 翻屏操作:

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

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

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

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

     

 保存退出:

      ZZ;保存退出

      ZQ:不保存退出

 字符編輯:

      x:刪除光標處的字符

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

      xp:交換光標所在處的字符

     

      ~:轉換大小寫

 替換命令:

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

       R:切換成替代模式

 刪除命令:

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

       d$:刪除到行尾

       d^:刪除到非空行首  

       d0:刪除到行首

       dw:刪除一個單詞,從光標處往后刪

       db:刪除一個單詞,從光標處往前刪

       dd:刪除光標所在行

       #dd:刪除#

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

 

 復制命令:

    y:復制,與d相似

       y$:復制到行尾

       y0:復制到行首

       y^:復制到非空行首

       yw:復制單個單詞,從光標處往后復制

       yb:復制單個單詞,從光標處往前復制

       #yy:復制#行內容

       y:復制整行內容

 

 粘貼命令:

       p:把復制的內容保存在緩沖區,如果是整行內容,粘貼至下一行,如果不是整行,粘貼至光標所在處的后面

       P:把復制的內容保存在緩沖區,如果是整行內容,粘貼至上一行,如果不是整行,粘貼至光標所在處的前面

 多次粘貼:#i內容[ESC]:粘貼內容#

 

 改變命令:

    c:修改后切換成插入模式

       c$:修改到行尾

       c^:修改到非空行首

       c0:修改到行首

       cw:修改單個單詞,從光標處往后修改

       cb:修改單個單詞,從光標處往前修改 

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

       #cc:刪除#行并輸入內容

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

 

 撤銷命令:

       u:撤銷最近一次的更改

       #u:撤銷之前多次更改

       U:撤銷光標落在 這行后所有此行的更改

       Ctrl -r重做最后的“撤銷”更改

       .重復前一個操作

       n.重復前一個操作n

擴展模式: :q 退出 :q! 強制退出,丟棄做出的修改 :wq 保存退出 :x 保存退出 ? 命令模式 ZZ: 保存退出 ZQ:不保存退

 按“:”進入擴展模式在“:”后添加命令

 命令:

      w:寫入

      wq:寫入并退出

      x:寫入并退出

      q:退出

      q!:不保存,強制退出

      r 文件名 :讀文件內容到當前文件

      w 文件名 :另存為

      !命令 : 在底部執行其他命令

      r! 命令 : 執行命令并把命令結果保存到vim所編輯的文件中

 地址定界:

      起始,結束

      #:具體地#行,例如5表示地5

      ##:從左側#表示行開始,到右側表示行結束

      #,+#:從左側#表示開始,往后加上#   1,+2 表示13

      .:表示當前行

      $:最后一行

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

      %:表示全文

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

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

      /pat/,$:從第一次被模式匹配到的啊很難過開始,一直到最后一行。


 

 使用方式:在地址后面跟上一個編輯命令即可

 

 查找:

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

      ?條件:從當前光標所在處向文件首部

     

      多個結果切換:n:與命令同方向

                    N:與命令反方向

 

 查找并替換 s///  分隔符/可以替換 如:s###  s@@@ s$$$

       

      s:在擴展模式下查找替換,與sed命令有相識之處

 

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

    要查找的內容可使用已使用正則表達式,替換的內容不能用但可以是用后向引用\1、\2…,還可以使用“&”符號引用前面查找是找到的整個內容

    例如:s/ab/&cd/g  :結果就是把ab替換成了abcd

       修飾符:

           i:忽略大小寫    

           g:全局替換,默認每一行只替換第一個匹配到的

           gc:全局替換并且每次替換前詢問

   

vim的寄存器:

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

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

         例如:5tty表示復制5行到t寄存器中

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

 

             如果未至定,將使用無命名寄存器

    10個數字寄存器,用01,2….9表示,0存放最勁復制 的內容,1存放最勁刪除的內容,當新的文本變更和刪除時,

1轉存到2,2轉存到3,以此類推,數字寄存器不能在不同會話間共享。        

 

            

可視化模式:

 

         允許選擇的文本塊

             v 面向字符

             V 面向行

             crtl -v 面向塊

 

示例:

1.png

                                               

 

 

 可視化鍵可用于與移動鍵結合使用,突出顯示的內容可以被刪除,復制,變更,過濾,搜索等。

 

 

多文件模式:

 

     當一個vim同時打開多個文件時,可以用以下命令進行管理

                  :next 下一個

                  :prev 前一個

                  :first 第一個

                  :last 最后一個

                  :wall 保存所有

                  :qall 退出所有

                  :wqall 保存退出

 

 使用多窗口

      vim -o file  水平分割文件

      vim -O file  垂直分割文件

      在窗口間切換:Ctrl+w ,Arrow

單文件窗口分割:

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

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

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

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

      wqall 退出

 示例:垂直分割:

垂直.png

示例;水平分割

 

水平.png

定時vim的工作特性

 

   配置文件:永久有效

          全局:/etc/vimrc

          個人:~/.vimrc

   擴展模式:當前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 命令 忽略字符大小寫  禁用  set noic

vim練習題:

1、復制/etc/profile至/tmp/目錄,用查找替換命令刪除 /tmp/profile文件中的行首的空白字符 ?

2、復制/etc/rc.d/init.d/functions文件至/tmp目錄,用查 找替換命令為/tmp/functions的每行開頭為空白字符的行的 行首添加一個#

3、如何設置tab縮進為4個字符? ?

4、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換 /tmp/functions文件中的/etc/sysconfig/init為/var/log; ?

5、刪除/tmp/functions文件中所有以#開頭,且#后面至少 有一個空白字符的行的行首的#號

解答:

1、操作

前空.png

效果:

前空效果.png

2、操作:

空空.png

效果:

空空效果.png

3、操作

打開 ~.vimrc 或者/etc/vimrc添加如下項:

vimrc.png

4、操作

操作前.png

效果:

效果.png

5、操作:

刪前.png

效果:

效果啊啊啊.png

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

(0)
ZJMZJM
上一篇 2016-08-15 09:25
下一篇 2016-08-15 09:25

相關推薦

  • 第四周博客作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -r /etc/skel /home/tuser1 [root@localhost ~]# ls …

    Linux干貨 2016-12-28
  • N25-第十一周博客作業

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 點對點加密過程如下: 發送方根據單向加密算法計算數據的特征碼 用私鑰加密這段特征碼,生產數字簽名,將數字簽名附著在數據后面 發送方生產臨時對稱密鑰,用對稱加密算法結合對稱加密密鑰加密整段數據(數據+數字簽名) 為保證接收方可以解密,發送方用接收方的公鑰加密對稱加密密鑰,附加在數據后面 接收方用自己的私鑰解密數據…

    Linux干貨 2017-03-30
  • class16高級磁盤管理(二)網絡管理(一)

    一、高級磁盤管理(二) 邏輯卷管理器快照 快照是特殊的邏輯卷 快照只有在它們和原來的邏輯卷不同時才會消耗空間。 當原來的邏輯卷中有所改變時,會將舊的數據復制到快照中。 建立快照的卷大小只需要原始邏輯卷的15%~20%就夠了。也可以使用lvextend 放大快照。 使用LVM 快照 為現有邏輯卷創建快照 #lvcreate -L …

    Linux干貨 2016-09-05
  • 第五周 練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell; 1.  egrep "^(root|user1|fedora)" /etc/passwd|cut –d: –f7   2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:h…

    Linux干貨 2016-11-28
  • 掛載

    掛載的相關介紹

    Linux干貨 2017-12-10
  • 馬哥教育網絡班21期第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;   (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;   (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@localhost ~]#…

    Linux干貨 2016-10-09
欧美性久久久久