vim編輯器的使用

vim

         vim是一個類似于vi的文本編輯器,不過在vi的基礎上增加了很多功能,在早起vimEmacs編輯器打的很火熱,在1999年被linuxwork文本編輯分類的優勝者,而vim屈居第二,但2000vim贏得了salashdot beanie的最佳開放源代碼文本編輯大獎,此時的Eamcs到第二位,vimEmacs都是非常優秀的文本編輯器。

         viVisual Interface,是一種文本編輯器,所謂文本數據是基于字符編碼的文件,。

文本編輯器分類:

         行編輯器:所行編輯器是指一行一行的來編輯處理的工具,如之前講過的sed

         全屏編輯器:編輯空間占整個屏幕,如nano,vi

vimvi improvedvi的增強版,vim是模式化的編輯器

vim的工作模式又三種,編輯模式,輸入模式,命令擴展模式

 

vim的使用

         打開文件

         vim  [option]…..filename….

         +n:打開文件后,直接將光標定位只指定的行的行首

         +/parttern:打開文件后,直接將光標定位都第一個被pattern匹配的行首

         vim +filename,直接打開文件,光標在最后一行

         vim –b filename filename二進制方式打開文件

         vim –d file1 file2:比較多個文件

   vim –m filename :只讀打開文件,這是不能寫入數據。

 

在使用文件存在時,如果文件不存在,文件被打開并的內容

如果文件不存在,就相當于新建了一個文件。

 

模式切換

esc鍵:從輸入模式轉換到編輯模式

從編輯模式轉換到輸入模式,可以使用一下命令

         iinsert,在光標所在處輸入

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

         aappend,在光標所在處后面輸入

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

         o:在當前光標所在行的下方打開一個新的行

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

命令模式——>擴展命令模式

        

擴展命令模式——>命令模式

         esc

鎖定和解鎖:ctrl+s,ctrl+q

 

 

關閉文件

擴展命令模式下推出文本

         :q 退出文件

         :q! 強制保存退出,丟棄做出的修改

         :wq  保存退出

         :x 保存退出

 

命令模式下退出文本

         ZZ 保存退出

         ZQ 不保存退出

 

擴展模式

         按“:”進入Ex模式

         創建一個命令提示符,處于底部的屏幕左側

         命令

                   w寫入磁盤文件

                   wq保存退出

                   x 寫入并推出

                   q 退出

                   q!不存盤退出,即使修改的內容,也不會保存

                   r filename 讀文件內容到當前文件中

      :r /etc/issue 將文件內容插入到光標所在的位置


                   !command 在命令擴展模式下指定命令

      :!ls /etc/issue

                   r!command 將某個命令執行的記過讀入到當前文件中

      r!cat /etc/issue

vim編輯器的使用

vim編輯器的使用


                  

命令模式光標跳轉

         字符間跳轉

         h:左

         l:右

         j:下

         k:上

記憶小技巧h在哪一排的最左邊所以是左,l在最右邊就是右,j可以理解成japan,日本在韓國的下邊,j就是下,而韓國的首字母是k,韓國在日本上方,k就是上

 

         單詞間跳轉

         w:下一個單詞的詞首

         e:當前或下一個單詞的詞尾,end最后

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

         #command:有#指定一次跳轉的單詞數,比如我想跳轉3個詞,就是3w

 

         當前頁跳轉

         H:當前頁的首部,可以理解成head

         M:頁中間,middle

         L:當前頁的底部,lower

 

         行首行尾跳轉

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

         0:跳轉至行首,絕對行首

         $:跳轉至行尾

        

         行間移動:

         #G:擴展模式下直接指定跳轉的行數如 10跳至第十行

         G:跳轉至文件內容的最后一行

         1G,gg:跳轉至文件的第一行

        

         句間移動

         “(”:上一句

         “)”:下一句

        

         段落間移動:

         {”:上一段

         }”:下一段

 

命令行模式翻屏操作

         翻屏

         ctrl+f:向下翻一屏

         ctrl+b:向上翻一屏

         ctrl+d:向下翻半屏

         ctrl+u:向上翻半屏

 

命令模式操作

         字符編輯:

         x:刪除光標處的字符

         #x:刪除光標處的#個字符

         xp:交換光標所在處的字符及其后面字符的位置,也就是后面的一個字符,換到前面的一個字符的位置

         ~:轉換大小寫,原本是大寫轉換成小寫,原本是小寫,轉換成大寫

        

         命令替換(replace

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

         R:切換成REPLACE模式

        

         刪除命令

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

         d$:刪除到行尾

         d^:刪除到非空行首

         d0:刪除到行首

         dw:刪除到下一個單詞的詞首   

         de:刪除到下一個單詞的詞尾

         db:刪除至上一個詞的詞尾

         #command3dw

         dd:刪除光標所在的行 3dd

         D:從光標處一直刪除到行尾,留空行等同于d$

        

         復制命令(yank

         y:復制,跟d類似

         y$:從當前位置復制到行尾

         y0 從當前行復制到行首

         y^:從當前位置復制到非空白行首

         yw:從當前位置復制一個單詞詞首

         ye:從當前位置復制一個單詞詞尾

         yb:從當前位置復制單詞的詞尾

         yy:復制行 3yy

         y:復制整行

        

         粘貼命令(paste

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

         P(大寫):緩沖區如果為整行,粘貼當前光標所在行的上面,否則,粘貼至光標所在處的前面

        

         改變命令(change

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

         命令模式——>插入模式

         c$:從光標的當前位置到行尾的內容刪除,用戶可新添加內容

         c^:從光標的當前位置到行非空白字符行首的內容刪除,用戶可新添加內容

         c0:從光標的當前位置到行絕對行首的內容刪除,用戶可新添加內容

         cb:從光標的當前位置到上個單詞的詞首刪除,用戶可新添加內容

         ce:從光標處到下個詞的詞尾刪除,用戶添加新內容

         cw:從光標的當前位置到下個詞的詞首刪除,用戶添加新內容

         #command

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

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

 

命令模式

         10"xiaoesc粘貼‘xiao1o

         y復制,d刪除,gU變大寫,gu變小寫(移動光標才會改變)

        

擴展模式:地址定界

         :start,end

         #: 具體第#行,例如2表示第2行;

#,#: 從左側#表示行起始,到右側#表示行結尾

#,+#: 從左側#表示的行起始,加上右側#表示的行數

2,+3 表示25

         “.” :當前行

         $:最后一行

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

         %:全文,相當于1,$

         /part1/./part2/

         從第一次被part1模式匹配到的行開始,到第一次被part2匹配到的行結束

    :/root/,/abc/

         #/part/ #行到被模式第一次被part匹配到的行結束

         /part/,$ 從第一次被模式匹配到的行到最后一行

         使用方式:后跟一個編輯命令

         d:刪除

         y:復制

         w /path/to/file 將范圍匹配到的行寫到指定的文件中

         r file:在指定位置插入指定文件的內容

        

         查找

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

         ?pattern:從當前光標所在處向文件首部查找

         n:向下翻頁

         N:向上翻頁

 

         查找替換

         s:在擴展命令模式下完成查找替換操作

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

         要查找的內容:可以使用模式

         替換的內容:不能使用模式,但可以使用\1,\2….等后向印象引用符號;還可以使用“&”引用前面查找時找到的整個內容

         修飾符:

         i:忽略大小寫

         g:全局替換;默認情況下,每一行只替換第一次出現

         gc:全局替換,每次替換前詢問

 

         查找替換中的分隔符/可替換為其他字符,例如

         s@/root@/var@g

         s#/boot#/#i

 

         撤銷更改

         u撤銷最近的更改

         #u:撤銷之前多次更改

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

         ctrl –r 重做最后的撤銷更改

         .重復前一個操作

         n.重復前一個操作n

        

vim寄存器

      26個命名寄存器和1個無命名寄存器,常存放不同的剪貼版內容,可以不同會話間共享。用a,b,…,z表示,寄存器表示,放在數字和命令之間

如:3"tyy 表示復制3行到t寄存器中"tp 表示將t寄存器內容粘貼未指定,將使用無命名寄存器有10個數字寄存器,用0,1,,9表示,0存放最近復制內容,1存放最近刪除內容。當新的文本變更和刪除時,1轉存到2,2轉存到3,以此類推。數字寄存器不能在不同會話間共享。

 

 

 

編輯二進制文件

         以二進制方式打開文件

         vim –b  /bin/bash

擴展命令模式下,利用xxd命令轉換為刻度的十六進制

         %!xxd

編輯二進制文件

擴展命令模式下,利用xxd命令轉換回二進制

保存退出

3.jpg

 

 

可視化模式

         允許選擇地文本

         v:面向字符

         V:面向行

         ctr –v 面向塊

         可視化鍵可用于移動鍵結合使用

         w, ), {,方向鍵等

         突出顯示的文字可以被刪除,復制,變更,過濾,搜索/替換等

        

 5.jpg

多文件模式

         vim file1 file2 file3 file4

         next 下一個

         prev 上一個

         first 第一個

         last 最后一個

         wall保存所有

         qall 退出所有

         wqall 保存退出所有

   

vim編輯器的使用

vim編輯器的使用

      

使用多個窗口

         vim –o|-O file1 file2

         -o:水平分割

         -O:垂直分割

         在窗口間切換ctrl+w, 左右鍵

         單個文件窗口分割

         ctrl+w,ssplit,水平分割

         ctrl+w,vvertical,垂直分割

         ctrl+wq取消相鄰窗口

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

         wqall退出

 8.jpg

 9.jpg

vim配置文件

         全局:/etc/vimrc

         個人:~/.vimrc

        

         擴展模式:當前vim進程有效

         顯示行號

         set number簡寫為set nu

         取消行號 set nonu

        

vim編輯器的使用

vim編輯器的使用

         括號成對匹配        

         set showmatch簡寫set sm

         取消         set nosm

 

         自動縮進

         啟用set ai

         取消set noai

       13.jpg 

         高亮搜索

         啟用: set hlsearch

         取消: set nohlsearch

        14.jpg

         語法高亮

         啟用:syntax on

         取消:syntax off

        

         忽略字符的大小寫

         啟用:set ic

         取消:set noic

         

         文件格式

         啟用 fileformat=unix     

         不忽略:fileformat=dos

        

         設置文本寬度

         set textwidth=60

         set wrapmargin=10

 

         help option-list 獲取幫助列表

         set or setall 顯示set相關的命令

        

vim內置幫助

         help

         help topic    

         vimtutor(執行命令進入幫助文檔)

 

      練習

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

 cp /etc/profile  /tmp    

   vim profile

    :s@^[[:space:]]@@g'

 

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

cp /etc/rc.d/init.d/functions /tmp

vim funtions

:s@^[[space:]]@#&@g'

        

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

(0)
fszxxxksfszxxxks
上一篇 2016-08-09
下一篇 2016-08-09

相關推薦

  • 常用文本處理命令練習

    1、列出當前系統上所有已經登錄的的用戶的用戶名,注意同一用戶登錄多次,則只顯示一次 [root@keyou ~]#  w -hs | cut -d' ' -f 1 | sort -u  gentoo …

    系統運維 2016-11-13
  • bind的安裝實現

    首先介紹一下我的測試環境:centos 7+入網(為了試行一下自己的安裝文檔,才裝的虛擬機) 1> yum install bind bind-chroot -y     因為剛剛安裝的虛擬機,這里我就不檢查了; 2>vim named.conf [root@localhost named]# cat /e…

    Linux干貨 2016-03-20
  • 關于 建立私有CA和申請證書

                               建立私有CA和申請證書            …

    系統運維 2016-09-23
  • 系統管理中的三大利刃(htop glances dstat)

    工欲善事情,必先利其器,生產環境中的服務器在處理請求并生成回應數據的時間主要消耗在服務器端,包括了眾多的環節,如何全面了解我們linux服務器的CPU使用率、使用時間、內存占用比例、磁盤IO數據、網絡相關數據等等眾多指標,保證我們的linux服務器順利完成每一個請求,怎能沒有幾個趁手的利刃,而今天就讓我們見識一下系統管理中三大利刃。 相傳一把三尺長的軟劍,叫…

    Linux干貨 2015-11-18
  • 初識Nginx

    前言:   Nginx介紹:    Nginx(engine x)是由俄羅斯人logor sysoev研發的;官方網站:nginx.org;nginx是一個輕量級的高性能的web服務器和反向代理服務器;nginx本身一個處理靜態資源的web服務器,但是通過加裝fastcgi等模塊,可是支持動態資源;可以為IMAP/POP3/SM…

    Linux干貨 2015-06-23
  • 一次簡單的內核編譯(一)

    一、編譯環境   1、準備一臺測試機,放置兩塊硬盤   2、安裝"Development Tools"和"Server Platform Development"編譯環境   3、內核下載地址:https://www.kernel.org(本人使用的是3.10版本)   4、下載…

    Linux干貨 2015-06-01
欧美性久久久久