天天看點

Linux運維 第二階段 (二)vim編輯器

vi(visual interface);

vim(VI improved):全屏編輯器;模式化的編輯器;最好用的功能文法着色

可通過#vimtutor擷取幫助

vim模式:編輯模式(指令模式);輸入模式;末行模式

模式轉換:

編輯模式-》輸入模式:

i(在目前光标所在字元的前面,轉為輸入模式)

a(在目前光标所在字元的後面,轉為輸入模式)

o(在目前光标所在行的下方建立一行轉為輸入模式)

I(在目前光标所在行的行首,轉為輸入模式)

A(在目前光标所在行的行尾,轉為輸入模式)

O(在目前光标所在行的上方建立一行,轉為輸入模式)

輸入模式-》編輯模式:<ESC>

編輯模式-》末行模式(僅能在編輯模式下轉換到末行模式):冒号<:>

末行模式-》編輯模式:<ESC>一次或兩次按鍵

一、打開檔案

#vim +  FILE(打開檔案,定位在最後一行)

#vim +#  FILE(打開檔案,定位在#行)

#vim +/pattern  FILE(打開檔案,定位在第一次被PATTERN比對到的行首)

二、關閉檔案

在末行模式下::q,:q!,:w,:w!,:wq(:x)

在編輯模式下:ZZ

三、移動光标(編輯模式下):

逐字元移動:[#]h|L|K|J(分别為左右上下)

逐單詞移動:[#]w|e|b(分别為移至下一個單詞的詞首,跳至目前或下一個單詞的詞尾,跳至目前或前一個單詞的詞首)

行内跳轉:0|^|$(分别為絕對行首,行首的第一個非空白字元,絕對行尾)

行間跳轉:G|#G(分别為最後一行,直接跳轉至#行,在末行模式下輸入:#也可跳至#行)

四、翻屏:

ctrl+f(向下翻一屏)

ctrl+b(向上翻一屏)

ctrl+d(向下翻半屏)

crrl+u(向上翻半屏)

五、删除單個字元:[#]x(x删除光标所在處單個字元,#x删除光标所在處及後的#個字元)

六、删除指令:

[#]d跳轉符(d與跳轉符結合使用,如dw,de,db,dG,d0,d^,d$)

dd(删除光标在行)

#dd(删除光标所在行及下的#行)

在末行模式下删除:

:startNUM,endNUMd(如::5,10d删除5到10行)

.(表示目前行)

$(表示最後一行)

+#(向下的#行)

$-1(倒數第二行)

注:删除的内容放至緩沖區(記憶體中),之前的操作可撤銷最多50次,最後一次的内容可粘貼。

七、粘貼指令:

小寫p(删除或複制的為整行内容,則粘貼至光标所在行的下方;若删除或複制的非整行,則粘貼至光标所在字元的後面)

大寫P(删除或複制的為整行内容,則粘貼至光标所在行的上方;若删除或币制的非整行,則粘貼至光标所在字元的前面)

八、複制指令:

y(用法同d指令,如:yy,3yy,y$,y0,:2,10y)

九、修改(先删除内容再轉換為輸入模式):

c(用法同d指令,如:cc,c$)

十、替換:

r(替換單個字元)

R(替換模式)

十一、撤銷編輯操作:

u(撤銷前一次的編輯操作)

連續u(撤銷此前的n次操作)

#u(撤銷之前的#次操作)

ctrl+r(撤銷最近一次的撤銷操作)

十二、重複前一次編輯操作:.點

十三、可視化模式:

小寫v(結合移動光标,按字元選取)

大寫V(結合移動光标,按矩形選取)

十四、查找:

/pattern(向下查找,回車後用n可繼續向下查找比對内容,用N則向上查找比對内容)

?pattern(向上查找,回車後用n可繼續向上查找比對内容,用N則向下查找比對内容)

十五、查找并替換:在末行模式下使用s(同sed指令的用法,s///,s@@@,s###等可自定義符号)

:ADD1,ADD2s@PATERN@STRING@gi(g全局替換,i忽略大小寫,gi可同時使用,例如::.,$-1s/he/ha/gi)

:%s/pattern/string/gi(%表示全文)

十六、打開多個檔案:

#vim FILE1  FILE2

:next(切至下一個檔案)

:prev(切至上一個檔案)

:first(切至首個檔案)

:last(切至最後一個檔案)

:qa(全部退出)

十七、分屏顯示一個檔案:

Ctrl+w,s(水準拆分視窗)

Ctrl+w,v(垂直拆分視窗)

Ctrl+w(在視窗間切換光标)

:qa(關閉所有視窗)

十八、分視窗顯示多個檔案:

#vim -o  FILE1  FILE2(水準分割顯示)

#vim -O  FILE1  FILE2(垂直分割顯示)

十九、将目前檔案的部分内容另存為另一檔案:

:ADDR1,ADDR2w  /path/to/file

二十、将另一檔案内容填充在目前檔案中:

:r /path/to/file

二十一、與SHELL互動:

:! COMMAND

二十二、進階用法:

1、  顯示或取消行号(行号不是檔案的組成部分):

:set nu(:set  number)

:set nonu

2、  顯示忽略字元大小寫(不常用):

:set ic(:set  ignorecase)

:set noic(:set  noignorecase)

3、  設定自動縮進,把目前行的對齊格式應用到下一行(寫腳本時常用):

:set ai(:set  autoident)

:set noai

:set smartindent(依據上面的對齊格式,智能的選擇對齊方式)

4、  查找到的文本高亮顯示:

:set hls(highlight search)

:set nohls

5、  文法高亮:

:syntax on

:syntax off

6、  設定比對模式(當輸入一個右括号時會比對相應的左括号):

:set showmatch

7、  設定查詢時按輸入内容依次找到比對項,如查找book單詞,當輸入/b時,會自動找到第一個b開頭的單詞,當輸入到/bo時會自動找到第一個/bo開頭的單詞,依次類推:

:set incserarch(incremental search)

8、  設定標明行加橫線:

:set cursorline

二十三、配置檔案:

/etc/vim(全局)

~/.vimrc

以上内容是學習《馬哥網絡視訊》做的筆記。

vi編輯器(全螢幕純文字編輯器)

1、指令模式、插入模式、末行模式

2、a                在光标所在字元後插入

         A              在光标所在行行尾插入

         i                在光标所在字元前插入

         I              在光标所在行行首插入

         o                在光标下插入新行

         O              在光标上插入新行

         :w              儲存

         :q               不儲存退出

         :wq  儲存退出

         :q!             強制退出

         :w 檔案名              另存為

3、HJKL對應左下上右

         gg              檔案頭

         G              檔案尾

         ^                行首

         $                行尾

         :n               移至第幾行

         x                 删除單個字元

         nx              删除n個字元

         dd              删除單行(或剪切)

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

         ndd            删除n行

         p                粘貼至光标後

         P                粘貼到光标前

         yy nyy             複制

         u                          撤銷

         ctrl+r                  反撤銷

         r                          替換光标所在處字元

         R                         從光标處開始替換,<esc>結束

         :set nu               顯示行号

         :set nonu          不顯示行号

         :syntax on|off           顔色開關

         /内容                 查找字串(n向下查,N向上查)

         :1,10s/old/new/g              替換1到10行的old為new

         :%s/old/new/g                   替換整個檔案的old為new

         :1,5s/^/#/g                注釋1到5行(在行首加#)

         :1,5s/^#//g                取消1到5行注釋

         :1,5s/^/\/\//g                     檔案頭加入//

                   注:/g (範圍内所有)

4、:r  檔案名           導入其它檔案内容

         :!指令                                            在vim中執行系統指令

         :r !指令                                     導入指令結果

         :map 快捷鍵 快捷鍵執行的指令

         例::map ^p I#<esc>                         在行首加入#

注:^p不能手工輸入,需執行ctrl+v+p來定義

例::map ^b ^x<esc>                        按ctrl+b時取消#

5、:ab  源字元  替換為字元

         注:如需永久生效,需寫入配置檔案~/.vimrc

本文轉自 chaijowin 51CTO部落格,原文連結:http://blog.51cto.com/jowin/1640455,如需轉載請自行聯系原作者