移動游標的方法
[ h ] [ j ] [ k ] [ l ]
[←] [ ↓ ] [ ↑ ] [→]
w 以一個單字字首向後移動
b 以一個單字字首向前移動
0 = [Home] = ^ 移到該行的第一個字元
$ = [End] 移到該行的最後面字元處
% 在 () {} 上會移動到相對應的括號
f “ 移到該行的下一個雙引號 (F反向)
gg 移動到檔案最前面的第一個字元
G 移動到檔案最後面一行的第一個字元
n + [space] 向右移動 n 個
n + [Enter] 向下移動 n 行 = nG = nj = n↓
( 跳到上一個區塊的第一行或最後一行
) 跳到下一個區塊的第一行或最後一行
[[ 跳到上一個區塊的第一行
]] 跳到下一個區塊的第一行
{ 跳到上一個區塊的最後一行
} 跳到下一個區塊的最後一行
[Page Down] = [Ctrl] + [f] 下一頁
[Page Up] = [Ctrl] + [b] 上一頁
[Ctrl] + [e] 向下捲動一行
[Ctrl] + [y] 向上捲動一行
H 移動到該頁第一行
M 移動到該頁中間那一行
L 移動到該頁最後一行
zz 移動畫面置中游標
zb 移動畫面置底游標
zt 移動畫面置頂游標
ma 標記mark a
‘a 快速跳到標記mark a的那一行
‘ ‘ 回到剛剛的位置
搜尋
/word 游標之後開始找
n 搜尋下一個 ( * 游標所在單字搜尋下一個相同的單字)
N 搜尋上一個 ( # 游標所在單字搜尋上一個相同的單字)
?word 游標之前開始找
取代
:1,$s/word1/word2/g 從第一行到最後一行尋找word1字串取代為word2
:1,$s/word1/word2/gc 取代前提示使用者確認
刪除、複製與貼上
x = [del]
X = [backspace]
dd 刪除該列ndd
diw 刪除游標上的單字
cc = C = S 刪除該行後,進入insert模式
ciw 刪除游標上的單字,進入insert模式
ci‘ 刪除單引號內的字串,進入insert模式
yy = Y 複製該列 (nyy)
yiw 複製單字
yi‘ 複製單引號內的字串
"ayy 把複製的字串放到a索引裡 ( :reg指令,清空:let @a = ‘ ‘ )
"ap 游標後貼上a索引裡的內容
p 游標後貼上
P 游標前貼上
. 重複前一個動作
u 復原前一個動作
[Ctrl] + [r] 重做上一個動作
進入插入或取代的編輯模式
o 目前游標所在的下一行處插入新的一行
O 目前游標所在處的上一行插入新的一行
r 取代游標所在的一個字元
R 會一直取代游標所在的文字,直到按下[ESC]為止
visual模式區塊選擇
[v] + [←↓↑→] 反白字元
[V] + [←↓↑→] 反白列visual line模式
[Ctrl] + [v] visual block模式
y 反白的地方複製起來
d = x 反白的地方刪除掉
多檔案編輯
vim file1 file2
:n 編輯下一個檔案
:N 編輯上一個檔案
:files = ls 列出目前vim 開啟的所有檔案
多視窗
vim -o file1 file2 上下分割視窗
vim -O file1 file2 左右分割視窗
:sp = :new file 上下分割視窗
:vs = :vnew file 左右分割視窗
[Ctrl]+[w]+ [←↓↑→] 游標可移動到下方的視窗
[Ctrl] + [w] + [w] 切換到下一個視窗
[Ctrl] + [w]+ [q] = :q
[Ctrl] + [w] + [o] = :only 留下目前視窗,關閉其他
[Ctrl] + [w] + [=] 平均視窗大小
Tab視窗
vim -p file1 file2 用tab顯示
gt 切換下一個tab (ngt)
gT 切換上一個tab
:tab ball 把所有 buffer 轉成 tabpage。
:tabe file 開新tab
:tabc 關閉tab
:tabo 留下目前tab,關閉其他
:tabr 第一個標籤頁
:tabl 最後一個標籤頁
vim 的環境設定參數
:opt 列出所有目前的設定,在 set 這個字上按 Enter 即可改變設定,改完後按 :q就可以了 (在簡短說明處按 Enter 則會叫出該部份的說明檔給您參考)
:set option? 顯示 option 這設定的目前值
:set all 顯示目前所有的環境參數設定值。
:set 顯示有更動過的設定
:set ai 自動縮排(autoindent)
:set tabstop=4 設定一個tab等於四個空白長度
:set expandtab tab鍵會用空白取代(由tabstop設定而定)
:retab 將tab轉換成space
:set shiftwidth=4 縮排>>時,一次移動的字元寬度
:set showmatch 自動找對應括號
:set hlsearch 標記搜尋到的字串
:set incsearch 不需按 Enter,邊打邊搜尋
:set ruler 顯示說明
:set showmode 顯示編輯狀態
:set enc=utf8 設定編碼
:set paste 直接貼上文字時格式不會跑掉
:set cin 編輯 C/C++ code 時會自動打開
:syntax on 語法高亮度顯示
指令
:w [filename] 另存新檔
:n1,n2 w [filename] 將 n1 到 n2 的內容儲存成 filename 這個檔案
:! command 暫時離開 vi 到指令列模式下執行 command 的顯示結果 eg. :!ls
vim –r filename 恢復編輯時被中斷的檔案
其他
[Ctrl] + [p] 自動補齊變數名稱或語法
>> 縮排 (n>>)
<< 縮排倒退
參考網址:
1. http://linux.vbird.org/linux_basic/0310vi.php#vi_temp
2. http://jex.logdown.com/posts/40910-vim
3. http://www.study-area.org/tips/vim/index.html
4. http://edt1023.sayya.org/vim/node10.html
原文:http://www.cnblogs.com/yijay/p/3622285.html