vi/vim
新建
vi [filename] 打開或新建一個(gè)文件昔馋,如: vi test.txt
按i
切換到輸入模式斟珊,以輸入字符。
按 ESC
鍵可隨時(shí)退出到命令模式舀瓢,操作命令都是在命令模式下的黔衡。
在命令模式下(即按ESC鍵后再操作)
移動(dòng)光標(biāo)
用鍵盤[Page Up] 或 [Page Down] 或[→][←][↑][↓]來移動(dòng)光標(biāo)蚓聘。
[Ctrl] + [f] 屏幕『向下』移動(dòng)一頁。
[Ctrl] + [b] 屏幕『向上』移動(dòng)一頁盟劫。
[Ctrl] + [d] 屏幕『向下』移動(dòng)半頁夜牡。
[Ctrl] + [u] 屏幕『向上』移動(dòng)半頁。
搜索
/word向下搜索
?word 向上搜索 再按n鍵繼續(xù)搜索
再按n鍵繼續(xù)正向搜索
再按N鍵繼續(xù)反向搜索
按下"*"鍵侣签,取當(dāng)前光標(biāo)所在的word并將它作用目標(biāo)字符串進(jìn)行搜索塘装。
按下"#"鍵,"#"命令是"*"的反向版影所。
匹配特殊字符在字符串前面加反斜杠
開啟高亮顯示用":set hlsearch"
關(guān)閉高亮顯示用":set nohlsearch"
替換
:n1,n2s/word1/word2/g
在第 n1 與 n2 行之間尋找 word1 這個(gè)字符串蹦肴,并將該字符串取代為 word2
:1,$s/word1/word2/g 或 :%s/word1/word2/g
從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc
從第一行到最后一行尋找 word1 字符串猴娩,并將該字符串取代為 word2 阴幌!且在取代前顯示提示字符給用戶確認(rèn) (confirm) 是否需要取代!
選擇
v 從光標(biāo)當(dāng)前位置開始卷中,光標(biāo)所經(jīng)過的地方會(huì)被選中矛双,再按一下v結(jié)束。
V 從光標(biāo)當(dāng)前行開始蟆豫,光標(biāo)經(jīng)過的行都會(huì)被選中议忽,再按一下V結(jié)束。
Ctrl + v 矩形區(qū)域選擇十减,再按一下Ctrl + v結(jié)束栈幸。
ggVG 選中全部的文本, 其中g(shù)g為跳到行首嫉称,V選中整行侦镇,G末尾
刪除
x 為向后刪除一個(gè)字符 (相當(dāng)于 [del] 按鍵)
X 為向前刪除一個(gè)字符(相當(dāng)于 [backspace] 亦即是退格鍵)
nx 向后刪除連續(xù) n 個(gè)字符,n 為數(shù)字织阅。舉例來說壳繁,我要連續(xù)刪除 10 個(gè)字符, 『10x』。
dd 刪除游標(biāo)所在的那一整行
ndd 向后刪除連續(xù) n 行
d0 刪除游標(biāo)所在處闹炉,到該行的最前面一個(gè)字符蒿赢。
d$ 刪除游標(biāo)所在處,到該行的最后一個(gè)字符渣触。
d1G 刪除光標(biāo)所在到第一行的所有數(shù)據(jù)
dG 刪除光標(biāo)所在到最后一行的所有數(shù)據(jù)
復(fù)制
yy 復(fù)制游標(biāo)所在的那一行羡棵。
nyy 向后復(fù)制連續(xù) n 行。
y0 復(fù)制光標(biāo)所在的那個(gè)字符到該行行首的所有數(shù)據(jù)
y$ 復(fù)制光標(biāo)所在的那個(gè)字符到該行行尾的所有數(shù)據(jù)
y1G 復(fù)制游標(biāo)所在行到第一行的所有數(shù)據(jù)
yG 復(fù)制游標(biāo)所在行到最后一行的所有數(shù)據(jù)
粘貼
小寫p將已復(fù)制的數(shù)據(jù)貼在光標(biāo)下一行位置嗅钻。
大寫P將已復(fù)制的數(shù)據(jù)貼在光標(biāo)上一行位置皂冰。
保存
:w 保存文件。
:w! 強(qiáng)制保存养篓,到底能不能保存秃流,跟你權(quán)限有關(guān)。
:q 離開vi
:q! 不保存直接離開vi
:wq 保存并離開vi
:wq! 強(qiáng)制保存后離開
:w [filename] 另存為新的文檔柳弄,[filename]為新文件名舶胀。
:r [filename] 讀入另個(gè)[filename]文件的數(shù)據(jù),寫在游標(biāo)所在行后面碧注。
行號(hào)
:set nu 顯示行號(hào)
:set nonu 取消行號(hào)
總結(jié):
Operator + Scope = command
Operator
v 選擇
d 刪除
y 復(fù)制
p 粘貼
c 修改
u 后退
Scope
e 由游標(biāo)所在位置至該字串的最后一個(gè)字元嚣伐。
w 由游標(biāo)所在位置至下一個(gè)字串的第一個(gè)字元。
b 由游標(biāo)所在位置至前一個(gè)字串的第一個(gè)字元萍丐。
$ 由游標(biāo)所在位置至該行的最后一個(gè)字元轩端。
0 由游標(biāo)所在位置至該行的第一個(gè)字元。
G 全部碉纺。