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