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,如需轉載請自行聯系原作者