功能強大的Linux文本編輯器之Vim的使用

VIM編輯器

 

Vim章節的內容:

   使用vivim的三種主要模式

   移動光標,進入插入模式

   改變、刪除、復制文本

   撤銷改變

   搜索文檔

   vim寄存器

   可視化和多窗口

   vim幫助

一、文本編輯器種類的簡單介紹:

  行編輯器:sed

  全屏編輯器:nano;vivim(可以理解為vi的升級版)

  簡單的圖形編輯器:gedit

  圖形版的vim編輯器:gvim

二、了解vim的主要模式:

1、三種主要模式:

  命令模式(默認):光標的移動,文本的剪切與粘貼

  插入模式:文本內容的修改

  擴展命令模式:保存,退出;修改、查找與替換等

  注:“ESC”按鍵:退出vim的當前模式,每次的使用都是返回到命令模式下。

blob.png

2、  模式的轉換:

1)命令模式>>>插入模式:

   i: 在光標所在處輸入

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

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

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

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

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

2)插入模式>>>命令模式:

   按鍵“ESC

3)命令模式>>>擴展命令模式:

   冒號(:)

4)擴展命令模式>>>命令模式:

   按鍵“ESC 

注:編輯界面的鎖定與解鎖:(界面鎖定時,在鍵盤上敲擊的字符雖然沒有顯示輸入,但當解鎖時,所輸的字符會自動寫入。)

Ctrl+s  鎖定;Ctrl+q  解鎖 

三、Vim的文件打開與關閉

1man幫助查看vim的格式使用:

  vim [options] [file ..]

  例:vim name 新建文件并命名為name

 blob.png

注:使用vim打開文件,如果該文件存在,文件被打開并顯示內容;如果該文件不存在,當編輯后第一次存盤時創建它 

2、vim打開文件:

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

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

  vim + file 直接打開file,光標在最后一行

  vim b file 二進制方式打開文件

  vim d file1 file2 比較多個文件

  vim -m file 只讀打開文件

  ex file vim –e 直接進入ex模式(擴展模式) 

3、vim關閉文件:

1)擴展模式下關閉文件:

   :q 退出

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

   :wq保存退出

   :x保存退出

2)命令模式下關閉文件:(該方式關閉文件在文件出現修改的情況下不建議使用。)

   ZZ: 保存退出

   ZQ:不保存退出

四、命令模式下vim的使用:

1、光標的跳轉:

字符間的跳轉

左:h

右:l(小寫L

上:k

下:j

單詞間的跳轉

下一個單詞的詞首:w

當前或下一個單詞的詞尾:e

當前或下一個單詞的詞首:b

#指定一次跳轉的單詞數:#COMMAND

當前頁的跳轉

頁首:H

頁中間行:M

頁底:L

行首、尾的跳轉

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

跳轉到行首(真正的行首):0

跳轉到行尾:$

行間的跳轉

跳轉至由#指定的行:#G

(擴展命令模式下:#

跳轉到最后一行:G

跳轉到第一行:1Ggg

句間的跳轉

下一句: ):

上一句: (:

注:以.為句間跳轉

段落間的跳轉

下一段: }

上一段: {

注:以較大的空行為一段跳轉

2、翻屏操作:

向文件尾部翻一屏

向文件首部翻一屏

向文件尾部翻半屏

向文件首部翻半屏

Ctrl+f

Ctrl+b

Ctrl+d

Ctrl+u

3、字符的編輯與替換命令:

字符編輯

x: 刪除光標處的字符;

#x: 刪除光標處起始的#個字符     注:最多只能刪除到行尾)

xp: 交換光標所在處的字符及其后面字符的位置   (注:相當于剪切后粘貼,前后位置互換。)

~:轉換大小寫

替換命令

r: 替換光標所在處的字符 (注:r后面跟上輸入需要替換掉后的內容。

R:切換成REPLACE模式    (注:當切換模式后,輸入什么就替換什么,當到了行尾后就繼續輸入。ESC退出回到命令模式。 

4、命令模式下vim的復制、刪除、改變、粘貼:

復制命令

刪除命令(從光標處開始)

改變命令(從光標處開始)

y

復制,單一字符的復制

d

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

c

修改單個字符后(相當于刪除后)切換成插入模式

y$

從光標處到行尾的復制

d$

刪除到行尾

c$

刪除到行尾,切換成插入模式

y0

從光標處到非空行首的復制

d^

刪除到非空行的行首

c^

刪除到非空行的行首,切換成插入模式

y^

從光標處到行首的復制

d0

刪除到行首

c0

刪除到行首,切換成插入模式

ye

從光標處到下一個單詞詞首的復制

de

刪除到下一個單詞的詞首

ce

刪除到下一個單詞的詞首,切換成插入模式

yw

從光標處到當前單詞的詞尾或者下一個單詞詞尾的復制

dw

刪除到當前單詞的詞尾或者下一個單詞的詞尾

cw

刪除到當前單詞的詞尾或者下一個單詞的詞尾,切換成插入模式

yb

從光標處到當前單詞的詞首或者前一個單詞詞首的復制

db

刪除到當前單詞的詞首或者前一個單詞的詞首

cb

刪除到當前單詞的詞首或者前一個單詞的詞首,切換成插入模式

#COMMAND

如:3yb,將光標處到前三個單詞之間進行復制

#COMMAND

如:5dw,往行尾刪除5個單詞

#COMMAND

如:3ce,光標處往行尾刪除3個單詞, ,切換成插入模式

yy

復制光標所在的行

dd

刪除光標所在行

cc

刪除當前行并輸入新內容

#yy

復制多(#)行

#dd

多(#)行刪除

#cc

多(#)行刪除并輸入新內容

Y

復制整行

D

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

C

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

粘貼命令:

p(小寫):緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面

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

5、vim的特殊使用以及命令的撤銷更改:

1vim的特殊使用:

   A、100igogo [ESC] :粘貼“gogo100

   B<start position><command><end position>

     Command:y 復制、d 刪除、gU變大寫、gu變小寫

   例如0y$ 命令意味著:

      0 →先到行頭

      y →從這里開始拷貝

      $ →拷貝到本行最后一個字符

      ye 從當前位置拷貝到本單詞的最后一個字符

2vim命令撤銷:

   u撤銷最近的更改

   #u撤銷之前多次更改

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

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

   . 重復前一個操作

   n.重復前一個操作n 

6、可視化使用(可視化模式):允許選擇的文本塊

1v面向字符 :在命令模式下,按c鍵后,使用方向鍵可以逐個字符進行選定,如下圖:

  blob.png

2V面向行 :在命令模式下,按C(大寫)鍵后,使用方向鍵可以逐個行塊進行選定,如下圖:

  blob.png

3Ctrl+v 面向塊 :如下圖,先往下選定所需要的行后,再往右進行選定,可實現塊選定。

  blob.png

4)可視化鍵可用于與移動鍵結合使用:w,),},箭頭等

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

五、擴展命令模式下的vim使用:

1、地址定界:

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

  #,/pat/        :從#行開始到被模式空間匹配到結束

  /pat/,$        :從模式空間匹配到開始,一直到文本的尾部結束

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

  d file:將指定范圍的內容刪除

  y file:將指定范圍的內容復制

  w file:將范圍內的行另存至指定文件中

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

  如下圖:讀取他處的文本內容寫入

  blob.png

  如下圖:將編輯后的文本內容另存指定的路徑和重新命名文本名存放

  blob.png

  如下圖:查看另存的新文本內容

  blob.png

2、擴展命令模式下vim的查找:

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

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

  n:與命令同方向

  N:與命令反方向

3、擴展命令模式下vim的查找與替換:

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

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

   s@/etc@/var@g ;s#/boot#/#i

2)查找內容、替換內容及修飾符的注意點:

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

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

   修飾符:

        i: 忽略大小寫

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

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

4、vim編輯二進制文件

1)以二進制方式打開文件:

    vim –b binaryfile

2)擴展命令模式下,利用xxd命令轉換為可讀的十六進制

   :%!xxd

3)編輯二進制文件

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

   :%!xxd –r

5)保存退出 

5、vim的寄存器:

1)了解命名寄存器和數字寄存器:(未指定,將使用無命名寄存器)

   有26個命名寄存器和1個無命名寄存器,常存放不同的剪貼版內容,可以不同會話間共享。用ab,…,z來做“寄存器”名稱。

   有10個數字寄存器,用0,1,…,9表示,0存放最近復制內容,1存放最近刪除內容。當新的文本變更和刪除時,1轉存到2,2轉存到3,以此類推。但數字寄存器不能在不同會話間共享。

2)使用格式及例子:

   使用格式:#” 寄存器名稱 命令

   如:3"tyy 表示復制3行到t寄存器中

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

6、多文件編輯下,擴展命令模式的vim使用:

   vim FILE1 FILE2 FILE3 …

   :next 下一個

   :prev前一個

   :first 第一個

   :last 最后一個

   :wall 保存所有

   :qall退出所有

   :wqall 

六、vim的命令模式下的多窗口及定制工作特性:(在窗口間切換:Ctrl+w, 再按箭頭進行切換窗口)

1、多窗口分割:

1)多文件分割

   vim -o|-O FILE1 FILE2 …

   -o: 水平分割

   -O: 垂直分割

2)單文件窗口分割:

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

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

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

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

 :wqall退出 

2、vim工作特性定制:

1)配置文件:永久有效

   全局:/etc/vimrc

   個人:~/.vimrc

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

3、工作特性的啟用與取消:

顯示

取消顯示

行號

set   number, 簡寫為set nu

set nonumber, 簡寫為set nonu

括號成對配對

set   showmatch, 簡寫為set sm

set   nosm

自動縮進

set   ai

set   noai

高亮搜索

set   hlsearch

set   nohlsearch

語法高亮

syntax   on

syntax   off

忽略字符的大小寫

set   ic

set   noic

文件格式

fileformat=unix

fileformat=dos

設置文本寬度

:set textwidth=65 (vimonly)  從左邊算起第65個字符自動換行。;   :set wrapmargin=15   從右邊開始算起15個字符自動換行。

幫助

:help option-list  ; :setor:set all  (在help里面使用該命令查看) 

4、了解更多的help

  vi/vim內置幫助( :help :helptopic ; Use:qto exit help ; ?Vimtutor 

練習:

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

   :%s@^[[:space:]]\+@@

  blob.png

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

  :%s@^[[:space:]]\+@#&@

  blob.png

  blob.png

作業:

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

   :set ts=4

  blob.png

  blob.png

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

   :%s@/etc/sysconfig/init@/var/log@

  blob.png

  blob.png

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

   :%s@#@@

blob.png

blob.png

 

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

(0)
Aaron_wangAaron_wang
上一篇 2016-08-12 09:01
下一篇 2016-08-12 09:01

相關推薦

  • N26-博客作業-week12

    1、請描述一次完整的http請求處理過程; (1) 建立或處理連接:接收請求或拒絕請求; (2) 接收請求:接收來自于網絡上的主機請求報文中對某特定資源的一次請求的過程; (3) 處理請求:對請求報文進行解析,獲取客戶端請求的資源及請求方法等相關信息; (4) 訪問資源:獲取請求報文中請求的資源; (5) 構建響應報文: (6) 發送響應報文: (7) 記錄…

    Linux干貨 2017-05-23
  • iptables練習

    iptables實戰 1.開啟防火墻 systemctl start firewalld 2.清空所有的默認規則,定義自己的規則 iptables -F 查看此時的iptables iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD…

    2015-03-15
  • VIM編輯器入門

    VIM簡介 VIM是一個類似于Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了很多特性。VIM是純粹的自由軟件。 VIM的使用 在介紹基本使用前,先了解下VIM的基本模式 基本模式可分為三種:命令模式、輸入模式、末行模式 命令模式:Vim啟動后的默認模式,通過輸入指令完成對應的編輯操作。輸入模式和末行模式從命令模式進入&nb…

    Linux干貨 2016-04-05
  • Centos7上安裝Ansible和基礎應用

    Ansible 簡介 ansible是個什么東西呢?官方的title是“Ansible is Simple IT Automation”——簡單的自動化IT工具。這個工具的目標有這么幾項:自動化部署APP;自動化管理配置項;自動化的持續交互;自動化的(AWS)云服務管理。所有的這幾個目標從本質上來說都是在一個臺或者幾臺服務器上,執行一系列的命令而已。通俗的說…

    Linux干貨 2016-04-15
  • YUM 的使用和YUM源的配置

    簡介     yum(Yellow dog Updater Modified)是CentOS中屬于RPM前端軟件包管理器,能從指定的服務器中下載RPM包,并自動分析和處理RPM包之間的依賴關系,最后將依次所依賴的軟件包都安裝了,而無需繁瑣的一個一個安裝。 一 yum repository:yum倉庫 yum倉庫的組成部…

    Linux干貨 2016-02-14
  • Linux Shell基礎腳本示例

    1、編寫腳本/root/bin/systeminfo.sh,顯示主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小.   2、編寫腳本/root/bin/backup.sh,可實現自動將/etc/目錄備份到/root/etcYYYY-mm-dd中.   3、編寫腳本/root/bin/disk.…

    Linux干貨 2016-08-15
欧美性久久久久