進入vim的命令:
vimfilename :打開或新建文件,並將光標置於第一行首
vim +n filename :打開文件,並將光標置於第n行首
vim + filename :打開文件,並將光標置於最後一行首
vim +/pattern filename:打開文件,並將光標置於第一個與pattern匹配的串處
vim -r filename :在上次正用vim編輯時發生系統崩潰,恢復filename
vim filename….filename :打開多個文件,依次編輯
Vim配置:
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示製表位(Ctrl+I)和行尾標誌($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
:set number / set nonumber :顯示/不顯示行號
:set ruler /set noruler:顯示/不顯示標尺
:set hlsearch 高亮顯示查找到的單詞
:set nohlsearch 關閉高亮顯示
:syntaxon #語法高亮
:setnu #顯示行號
:set tabstop=4 #設置tab大小
:set softtabstop=4
:set autoindent #自動縮進
:set cindent #C語言格式裏面的自動縮進
縮進
><Enter>: (大於號加回車) 右縮進多行
>>:右縮進一行
<<Enter>:左縮進
<<:左縮進一行
摺疊代碼
zf<Enter>:摺疊
zc:摺疊
zo:展開代碼
移動光標:
上:k nk:向上移動n行
下:j nj:向下移動n行
左:h nh:向左移動n列
右:l nl:向右移動n列
space:光標右移一個字符
Backspace:光標左移一個字符
Enter :光標下移一行
w或W :光標右移一個字至字首
b或B :光標左移一個字至字首
e或E :光標右移一個字至字尾
) :光標移至句尾
( :光標移至句首
}:光標移至段落開頭
{:光標移至段落結尾
n$:光標移至第n行尾
H :光標移至屏幕頂行
M :光標移至屏幕中間行
L :光標移至屏幕最後行
0:(注意是數字零)光標移至當前行首
^:移動光標到行首第一個非空字符上去
$:光標移至當前行尾
gg可以移到第一行
G移到最後一行
f<a>:移動光標到當前行的字符a上
F:相反
%:移動到與制匹配的括號上去(),{},[],<>等。
nG:移動到第n行上
G:到最後一行
屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b:向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部
插入文本類命令
i :在光標前
I :在當前行首
a:光標後
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字符
R:替換當前字符及其後的字符,直至按ESC鍵
s:從當前光標位置處開始,以輸入的文本替代指定數目的字符
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令
x或X:刪除一個字符,x刪除光標後的,而X刪除光標前的
dw:刪除一個單詞
dnw:刪除n個單詞
dne:也可,只是刪除到單詞尾
do:刪至行首
d$:刪至行尾
dd:刪除一行
ndd:刪除當前行及其後n-1行
dnl:向右刪除n個字母
dnh:向左刪除n個字母
dnj:向下刪除n行
dnk:向上刪除n行
cnw[word]:將n個word改變爲word
C$:改變到行尾
cc:改變整行
shift+j:刪除行尾的換行符,下一行接上來了.
複製粘貼:
p:粘貼用x或d刪除的文本
ynw:複製n個單詞
yy:複製一行
ynl:複製n個字符
y$:複製當前光標至行尾處
nyy:拷貝n行
撤銷:
u: 撤銷前一次的操作
shif+u(U):撤銷對該行的所有操作。
搜索及替換命令:
/pattern:從光標開始處向文件尾搜索pattern
?pattern:從光標開始處向文件首搜索pattern
n:在同一方向重複上一次搜索命令
N:在反方向上重複上一次搜索命令
cw【newword】:替換爲newword
n: 繼續查找
.: 執行替換
:s/p1/p2/g:將當前行中所有p1均用p2替代,g表示執行 用c表示需要確認
:n1,n2 s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
:1,$ s/string1/string2/g:在全文中將string1替換爲string2
書籤:
m[a-z]:在文中做標記,標記號可爲a-z的26個字母
`a:移動到標記a處
visual模式:
v:進入visual 模式
V:進入行的visual 模式
ctrl+v:進如塊操作模式用o和O改變選擇的邊的大小
在所有行插入相同的內容如include<,操作方法如下:
將光標移到開始插入的位置,按CTRL+V進入VISUAL模式,選擇好模塊後按I(shift+i),後插入要插入的文本,按[ESC]完成
行方式命令:
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:n1,n2 w!command:將文件中n1行至n2行的內容作爲command的輸入並執行之
若不指定n1,n2,則表示將整個文件內容作爲command的輸入
宏:
q[a-z]:開始記錄但前開始的操作爲宏,名稱可爲【a-z】,然後用q終止錄製宏
reg:顯示當前定義的所有的宏,用@[a-z]來在當前光標處執行宏[a-z]
窗口操作:
:split:分割一個窗口
:split file.c :爲另一個文件file.c分隔窗口
:nsplit file.c: 爲另一個文件file.c分隔窗口,並指定其行數
ctrl+w在窗口中切換
:close:關閉當前窗口
文件及其他:
:q:退出vi
:q!:不保存文件並退出vi
:e filename:打開文件filename進行編輯
:e! :放棄修改文件內容,重新載入該文件編輯
:w :保存當前文件
:wq :存盤退出
:ZZ:保存當前文檔並退出VIM
:!command:執行shell命令command
:r!command:將命令command的輸出結果放到當前行
:n1,n2 write temp.c 將本文件中的n1,到n2行寫入temp.c這個文件中去
:read file.c 將文件file.c的內容插入到當前光標所在的下面
:0read file.c 將文件file.c的內容插入到當前文件的開始處(第0行)
:nread file.c 將文件file.c的內容插入到當前文件的第n行後面
:read !cmd :將外部命令cmd的輸出插如到當前光標所在的下面
幫助:
:help :查看幫助文檔,在這之中,按CTRL+] 進入超連接,按CTRL+O 返回。
:help subject :看某一主題的幫助,ZZ 退出幫助
其它常用:
:newtab 新建標籤
:gt 轉至下一個標籤
:gT 轉到上一個標籤
:au GUIEnter * simalt~x 啓動時最大化
源文檔 <http://blog.sina.com.cn/s/blog_537ba7eb0100m1kc.html>