vi( Visual Interface )vim
vim( VI iMproveed ):爲純文本(ASCII)全屏編輯器,也是模式化編輯器.網絡
vim的三種模式:編輯器
1)編輯模式(命令模式)spa
2)輸入模式blog
3)末行模式圖片
三種模式之間的切換:內存
1)編輯模式-->輸入模式:ci
i: 在當前光標所在字符的前面,轉爲輸入模式;
a: 在當前光標所在字符的後面,轉爲輸入模式;
o: 在當前光標所在行的下方,新建一行,並轉爲輸入模式;
I:在當前光標所在行的行首,轉換爲輸入模式;
A:在當前光標所在行的行尾,轉換爲輸入模式;
O:在當前光標所在行的上方,新建一行,並轉爲輸入模式.string
2)輸入模式-->編輯模式:table
ESC鍵1次.
3)編輯模式-->末行模式:
:
4)末行模式-->編輯模式:
ESC鍵一次或連續ESC鍵2次.
圖片說明(來源網絡)
1、打開文件
# vim /path/to/somefile
vim +# :打開文件,並定位於第#行;
vim + :打開文件,定位至最後一行;
vim +/PATTERN : 打開文件,定位至第一次被PATTERN匹配到的行的行首;
說明: # 爲十進制正整數 PATTERN 表明模式匹配;
文件打開後默認處於編輯模式.
2、關閉文件
1)、末行模式關閉文件
:q 退出
:wq 保存並退出
:q! 不保存並退出
:w 保存
:w! 強行保存
:wq --> :x --> 至關於
2)、編輯模式下退出
ZZ: 保存並退出
3、移動光標(編輯模式)
1)、逐字符移動
h: 左
l: 右
j: 下
k: 上
#h: 移動#個字符
2)、以單詞爲單位移動
w: 移至下一個單詞的詞首
e: 跳至當前或下一個單詞的詞尾
b: 跳至當前或前一個單詞的詞首
#w:
3)、行內跳轉
0: 絕對行首
^: 行首的第一個非空白字符
$: 絕對行尾
4)、行間跳轉
#G:跳轉至第#行;
G:最後一行
gg: 首行
末行模式下,直接給出行號便可 :#
4、翻屏
Ctrl+f: 向下翻一屏(forward)
Ctrl+b: 向上翻一屏(back)
Ctrl+d: 向下翻半屏(down)
Ctrl+u: 向上翻半屏(up)
5、刪除單個字符
x: 刪除光標所在處的單個字符
#x: 刪除光標所在處及向後的共#個字符
6、刪除命令: d --delete
d命令跟(全部)跳轉命令組合使用(#最前,d次之,跳轉最後)
#dw, #de, #db, #d$
dd: 刪除當前光標所在行
#dd: 刪除包括當前光標所在行在內的#行
末行模式下:(d在末尾) (做爲獨立的地址參數,刪除該行)
StartADD,EndADDd (StartADD,startaddress--startline)
.: 表示當前行
$: 最後一行
+#: 向下的第#行
-#: 向上的第#行
7、粘貼命令 p --paste (最後一次的刪除內容保存於內存中,可用於粘貼)
p: 若是刪除或複製爲整行內容,則粘貼至光標所在行的下方,
若是複製或刪除的內容爲非整行,則粘貼至光標所在字符的後面;
P: 若是刪除或複製爲整行內容,則粘貼至光標所在行的上方,
若是複製或刪除的內容爲非整行,則粘貼至光標所在字符的前面;
8、複製命令 y (yank)
用法同d命令
9、修改:先刪除內容,再轉換爲輸入模式
c: 用法同d命令 (change)
C:直接將光標處至行位刪除,再轉換爲輸入模式
10、替換:r --replace
r: 替換單個字符
R: 連續替換單個字符
11、撤消編輯操做 u (undo)
u:撤消前一次的編輯操做
連續u命令可撤消此前的n次編輯操做 (內存中保存50次)
#u: 直接撤消最近#次編輯操做
撤消最近一次撤消操做:Ctrl+r
12、重複前一次編輯操做
. (點號)
十3、可視化模式
v | 字符選擇,會將光標通過的地方反白選擇(-- VISUAL --) |
V | 行選擇,會將光標通過的行反白選擇(-- VISUAL LINE --) |
[Ctrl]+v | 區塊選擇,能夠用長方形的方式選擇資料(-- VISUAL BLOCK --) |
y | 將反白的地方複製起來 |
d | 將反白的地方刪除掉 |
以上三種模式可對已選文本作各類普通模式下的操做,經過選擇指定文本可進行批量的插入、刪除、替換操做(如註釋掉腳本中的多行) |
十4、查找
/PATTERN 向下匹配
?PATTERN 向上匹配
n 按照匹配方向的下一個
N 按照匹配方向的上一個
十5、查找並替換
在末行模式下使用s命令 (與sed命令同樣)ADDR1,ADDR2s@PATTERN@string@gi (g--global, i--ignore case)1,$ 表示全文% 表示全文