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個數字寄存器,用0,1,2….9表示,0存放最勁復制 的內容,1存放最勁刪除的內容,當新的文本變更和刪除時,

1轉存到22轉存到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
下一篇 2016-08-15

相關推薦

  • FHS文件系統各個目錄功能

    FHS文件系統各個目錄功能 概述      Linux文件系統有點特別,它采用一種稱為虛擬目錄(virtual directory)的單文件系統,虛擬目錄包括了計算機存儲設備下的所有路徑,并且把它們納入一個目錄結構中。      Linux PC上安裝的第一塊硬盤叫做根驅動器,根驅動器包含了虛擬目錄…

    Linux干貨 2016-10-17
  • 8月2日作業

    1、在/testdir/data里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。 答: ~]# groupadd g1 ~]# groupadd g2 ~]# groupadd g3 ~]# useradd -G g2 alic…

    Linux干貨 2016-08-04
  • screen和ehco命令常用選項

    screen的用法 screen 是個外部命令,用之前需要安裝。      安裝方式之一:yum 源 安裝      yum install -y screen screen 是基于VT100/ANSI的仿真終端屏幕管理器    …

    Linux干貨 2016-07-26
  • vim、crontab、bash for循環練習

    1、復制/etc/rc.d/init.d/functions文件至/tmp目錄,將/tmp/functions文件中的以至少一個空白字符開頭的行的行首加#。 vim中支持全文查找替換功能且在查找時支持正則表達式,在替換時進行引用。先使用vim /tmp/functions,然后在vim編輯模式中輸入:%s/\(^[[:space:]]\+\)/#\1/g再回…

    系統運維 2016-12-03
  • N25期第八周作業

    1.請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別 主要功能: 網橋是一個局域網與另一個局域網之間建立連接的橋梁,屬于數據鏈路層的一種設備。 集線器是可以將一些機器連接起來組成一個局域網的設備。 二層交換機是工作于OSI模型的第2層(數據鏈路層)的設備,作用和集線器類似。 三層交換機就是具有部分路由器功能的二層交換機。 路由器是互聯…

    Linux干貨 2017-03-08
  • 網絡知識點

    1. 實現異地搭建局域網的方法1>. 讓運行商拉專線,這是相當昂貴的。2>.  VPN (Virtual PrivateNetwork)  虛擬專用網絡 2. VPN的隧道協議主要有三種:PPTP、L2TP和IPSec。其中PPTP和L2TP協議工作在OSI模型的第二層,又稱為二層隧道協議;IPSec是第三層隧道協議。 2. …

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