發(fā)信人: allanj (木瓜), 信區: VIM
標 題: 貼一下我常用的幾個(gè)命令
發(fā)信站: BBS 水木清華站 (Tue Jun 1 11:07:15 2004), 站內
常用命令:
------------------------------
CTRL-Z vim 切換到后臺
:g/xxx 列出所有含 xxx 的行; 適合想到含 xxx 的某行, 但不知道行號,
/xxx 又太慢
q: q/ q? 編輯長(cháng)命令時(shí)比較舒服, 執行按回車(chē), 按 CTRL-C 再次進(jìn)入
: / ? 原來(lái)的輸入狀態(tài), 再按一次關(guān)閉.
CTRL-W= 所有窗口等高, 適合 diff 時(shí)自己移動(dòng)了 window 大小
CTRL-Wo 等效于 :only
CTRL-Wc 等效于 :close!
gvim -u 用 NONE 的話(huà)必須大寫(xiě), 可以用 nul 文件, gvim -u nul, 而且不
區分大小寫(xiě)
-s 執行腳本文件, 是 normal 時(shí)的指令, cmd 的命令要 :, 但不用加<CR>
-w 把所有按鍵記錄 appedn 到指定文件中
-W overwrite
這 2 個(gè)適合不會(huì ) perl sed 的 vimer
--servername
--remote-silent 這 2 個(gè)搭配著(zhù)用, 可以總在一個(gè) vim 里打開(kāi)新文件, 比如
gvim.exe --servername smarter --remote-silent test.text
命令太長(cháng), 可以自己 alias 一下(win32 下用 doskey 就可以)
再次選中 上次選中的內容, 用 gv
在選中的區域首尾跳動(dòng), 用 大寫(xiě) O
:redi 把輸出信息重定向, 比如 保存所有 set 選項到 剪切板
:redi @*
:se all
具體 :h redi
c\c++ 下常用的:
------------------------------
[[
]] 在 C 的 {} 形成的段落中移動(dòng) (在第一列 { 之間跳動(dòng),
一次一個(gè)函數,一個(gè)結構或類(lèi)的定義)
[# 和 ]# 在 #if #else #endif 的上下位置間移動(dòng)
[{ ]}
[( ])
[/ ]/ 在注釋 /* */ 間移動(dòng)
這樣在這些塊的中間位置, 就能迅速到塊頭和塊尾
如果已經(jīng)在這些行上, 如果不是到對應點(diǎn),
會(huì )到上一級范圍, 如 { 上按 [{ 到上一級
]} 則到對應點(diǎn)
(vim 里常用 [ 表示 "向上",
] 表示 "向下",
比如上面的例子, 以及 [i ]i, diff 時(shí)候的 [c ]c 等)
% 在 () {} [] #ifdef #endif /* */之間跳轉
可以 :so $VIMRUNTIME/macros/matchit.vim
這樣可以在 if endif <tr> <\tr> 之間使用
對 1 個(gè)塊的操作, 具體 :h v_a
里面的 iX aX 什么的都很好用
ctags 用 -a 附加新 tags 到 ctags 文件后
--- 對 c
--- ctags -R --c-types=+px d:\mingw\include (etags)
--- 因為 ctags 確省不把函數聲明作為 tag
--- 對 c++
--- ctags -R --language-force=c++ --c++-types=+px --verbose --extra=+q
extra=+q 用來(lái)增加生成 Class::member 的形式, 默認沒(méi)有
這樣就可以用 :ts CView::OnDraw 這種形式看
--- 因為 c++ 一些頭文件不用 .h 所以要用 --language-force
--- 對 java
--- ctags -R --languages=java c:/jdk131/src
--- 要把 src.jar 展開(kāi)
:che 檢查 include 的文件在 path 中是否存在, 注意會(huì )遞歸驗證
插入模式
------------------------------
insert 模式下的:
CTRL-W 回刪一個(gè) word, 具體 :h i_ctrl-w
CTRL-U 回刪在當前行輸入的內容
CTRL-R 用某個(gè) reg 的內容
CTRL-E
CTRL-Y
0CTRL-D 這 2 個(gè)對縮進(jìn), 具體 :h i_0_CTRL-D
^CTRL-D
CTRL-C 退出 insert
另外, ascii 第 1 - 26 個(gè)對應的就是 CTRL-A 到 CTRL-Z
所以下面幾個(gè)也常用
CTRL-H 對 <BS>
CTRL-J 對 <LF> vim 里叫 <NL>
CTRL-M 對 <CR>
不使用 ab: 輸入 縮寫(xiě) 后, 按 ctrl-v 接著(zhù)輸入以后的字符
--
石敬瑭罵名千古
吳三桂遺臭萬(wàn)年
※ 來(lái)源:·BBS 水木清華站 smth.org·[FROM: 166.111.206.106]