vim是什么充蓝?聽(tīng)說(shuō)它是編輯器之神!
神一樣的存在喉磁,而我卻經(jīng)常用上下左右箭頭來(lái)移動(dòng)光標(biāo),實(shí)在是有點(diǎn)對(duì)不起它官脓,所以想著稍微學(xué)學(xué)一點(diǎn)神的技能吧协怒!
1、vim的三種模式
- Nomal mode:默認(rèn)模式卑笨,因?yàn)槭褂迷撃J綀?chǎng)景最多孕暇,所有定為默認(rèn)模式。
- Insert mode :插入模式赤兴,少用妖滔,盡量不要停留在找個(gè)模式下,操作完成之后桶良,推薦返回默認(rèn)模式座舍。
- Visual mode:可視模式,一般在需要選中的時(shí)候使用陨帆。
三種模式之間的轉(zhuǎn)換:
在插入或者可視模式下曲秉,按Esc鍵返回到默認(rèn)模式
在默認(rèn)模式下,按i疲牵,a承二,o進(jìn)入插入模式
在默認(rèn)模式下,按v纲爸,V進(jìn)入可視模式
2亥鸠、vim的操作
2.1 vim中的快捷鍵
移動(dòng):h(左)、l(右)识啦、j(上)负蚊、k(下)
操作:d(delete)、i(insert)颓哮、a(append)盖桥、c(change)、y(copy)题翻、p(paste)
縮寫:w(word)揩徊、s(sentence)
2.2 正則表達(dá)式
^:行首
$:行尾
2.3 命令模式
:set nu腰鬼,顯示行號(hào)
:syntax on,語(yǔ)法高亮
:set autoindent塑荒,自動(dòng)縮進(jìn)
:set fileencoding熄赡,顯示文件編碼
:set fileencoding=utf-8,以u(píng)tf-8的編碼顯示文件(然后w可以保存)
3齿税、vim的神操作
3.1 移動(dòng)彼硫、定位
h:光標(biāo)向左移動(dòng)
j:光標(biāo)向下移動(dòng)
k:光標(biāo)向上移動(dòng)
l:光標(biāo)向右移動(dòng)
可以在字母前面加上「數(shù)量」就可以移動(dòng)多行了,比如向上移動(dòng) 10 行凌箕,就是10k
w:光標(biāo)往前移動(dòng)一個(gè)詞
b:光標(biāo)向后移動(dòng)一個(gè)詞
0:移動(dòng)光標(biāo)到當(dāng)前行首
^:移動(dòng)光標(biāo)到當(dāng)前行的第一個(gè)字母位置(注意與 0 的區(qū)別)
$:移動(dòng)光標(biāo)到行尾
):移動(dòng)光標(biāo)到下一個(gè)句子
( :移動(dòng)光標(biāo)到上一個(gè)句子
{:移動(dòng)光標(biāo)到上一段
}:移動(dòng)光標(biāo)到下一段
[n]gg : 光標(biāo)移動(dòng)到第 n 行
gg: 光標(biāo)移動(dòng)到文件首部
G:移動(dòng)到文件胃部
3.2 快速編輯
i:在光標(biāo)處插入(insert首字母小寫)
I:在行首插入(insert首字母大寫)
a:在光標(biāo)處后一個(gè)字符插入(append首字母小寫)
A:在行尾插入(append首字母大寫)
o:在上一行插入
O:在下一行插入
s:清除當(dāng)前字符并進(jìn)入插入模式
cc/S:清除當(dāng)前行并進(jìn)入插入模式
cw: 清除當(dāng)前單詞并進(jìn)入插入模式
3.3 復(fù)制拧篮、黏貼、剪切
d[n]w:剪切光標(biāo)單詞及后面單詞的內(nèi)容(共n個(gè)單詞)牵舱,dw 是剪切當(dāng)前單詞
[n]dd:剪切光標(biāo)行及后面行的內(nèi)容(共n行)串绩,dd 為剪切當(dāng)前行
D/d$:剪切光標(biāo)后到行尾的內(nèi)容
d0:刪除光標(biāo)至當(dāng)前行首
dG:刪除光標(biāo)行至文檔結(jié)尾
dgg:刪除光標(biāo)至文檔開(kāi)頭
yy/Y:復(fù)制當(dāng)前行的內(nèi)容
p:粘貼到光標(biāo)后
P:粘貼到光標(biāo)前
3.4 撤銷、查找芜壁、替換
u:撤回上次操作
/aaa:表示在整篇文檔中搜索匹配aaa的字符串礁凡, / 表示向下查找
?aaa: 表示在整篇文檔中搜索匹配aaa的字符串,慧妄?表示向上查找
其中aaa可以是正規(guī)表達(dá)式顷牌。查找到以后,再輸入 n 查找下一個(gè)匹配處塞淹,輸入 N 反方向查找窟蓝。
:%s/old/new:檢索第一個(gè)“old”字符串并將其替換成 “new”
:%s/old/new/g:檢索并將所有的 “old” 替換為 “new”
:%s/old/new/gc:檢索出所有的 “old” 字符串,但在替換成 “new” 前饱普,先詢問(wèn)是否替換