總結(jié)一下自己經(jīng)常用vim的一些技巧和操作,很基本的就不寫了,很高深的還有待以后補(bǔ)充:
:%s/abc/abcc/gc
c表示詢問
:$s/abc/abcc/ge
e表示即使整個(gè)文件沒找到一個(gè)匹配的目標(biāo)也不要報(bào)錯(cuò)
:.,$s/yes/no
.表示當(dāng)前行,$表示最后一行。總體的語句表示從當(dāng)前行到最后一樣進(jìn)行匹配
:s+one/two+one or two+g
用+替換/
:s/good\|nice/handsome/g
把good或nice替換成handsome
:s/aaa/bbb/g4
只替換4行
:4,9s/\d\+/\=submatch(0)+1/
第4到9行的數(shù)字加一
:%s/^\w/\=toupper(submatch(0))/g
首字母大寫
:%s/^/\=line(".").". "/g
加行號(hào)
/^abc
轉(zhuǎn)到以abc開始的行
ctrl+-> / ctrl + <-
一次移動(dòng)一個(gè)單詞
30+ / 30-
向前/向后移動(dòng)30行
ctrl+o / ctrl_i
跳到更老的位置/跳到更新的位置
{
跳到上一段
} 跳到下一段
‘“
跳到上次關(guān)閉文件時(shí),在NOMAL模式下的光標(biāo)所在行
’^
跳到上次關(guān)閉文件時(shí),在INSERT模式下的光標(biāo)所在行
qa
開始記錄宏(這里的a可以用任意一個(gè)字母代替)
q
結(jié)束宏記錄
@a
執(zhí)行名字為a的宏
ma
標(biāo)記此行為a
‘a
移到標(biāo)記為a的行
mA/'A
可以跨文件進(jìn)行標(biāo)記
Insert模式下,ctrl+n / ctrl+p
補(bǔ)全
ctrl+a
重復(fù)上次在Insert模式下的動(dòng)作
Insert模式下,ctrl+y / ctrl+e
重復(fù)上一行/下一行光標(biāo)處的字符
:iab xl xulei
當(dāng)鍵入xl(空格)時(shí),會(huì)被替換成xulei
ctrl+x ctrl+n
在文件中補(bǔ)全以前出現(xiàn)過的單詞
ctrl+x ctrl+p
在文件中補(bǔ)全以前出現(xiàn)過的單詞
ctrl+x ctrl+l
在文件中補(bǔ)全以前出現(xiàn)過的一行
ctrl+x ctrl+f
補(bǔ)全文件名
ctrl+x ctrl+k
單詞補(bǔ)全
ctrl+x ctrl+t
同義詞補(bǔ)全
用v選中多行, 然后 !sort
可以實(shí)現(xiàn)排序
g ctrl+G(先按g然后按ctrl+G)
統(tǒng)計(jì)字?jǐn)?shù)(或先用v選中部分需要統(tǒng)計(jì)的文字)
將光標(biāo)移到一個(gè)函數(shù)上,K(大寫)
將自動(dòng)man此函數(shù)
在一個(gè)vim文件中:grep abc *
將匹配到所有包好abc的文件 :cn下一個(gè) :cp上一個(gè) :cl文件列表
vim `grep -l abc *`
打開包含abc的所有文件
ctrl+c=esc
:history
命令記錄
q:
打開命令行歷史窗口
q/
打開查找歷史窗口
:w filename
另存為
:1,3w filename
1-3行另存為
Insert模式下,ctrl+w
刪除前一個(gè)單詞
Insert模式下,ctrl+u
刪除此行光標(biāo)前所有單詞
:set showmatch
當(dāng)鍵入if(i>0)的)的時(shí)候,光標(biāo)會(huì)跳到(處停留1/10秒,再回來
:set cindent shiftwidth=4
設(shè)置縮進(jìn)
=a{
調(diào)整{}之間的縮進(jìn)格式
gu
變小寫
gU
變大寫
光標(biāo)定位在數(shù)字上ctrl+a
增1
轉(zhuǎn)自:
posted on 2009-11-25 15:50
chatler 閱讀(390)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
vi