Vim 和 Emac 都是利器啊,前段時間決定熟悉一套跨平臺的編輯器,以便在 Win,Mac,Ubuntu 下都有相同的編輯體驗。php
因而嘗試了一下 Vim,使用了一段時間,確實比 UE 之類的要高效。Win 平臺下有 gVim, Mac 下也有 MacVim。html
Vim 的學習曲線確實有點陡峭,剛開始不是那麼容易習慣的。查看幫助文檔是必不可少的,其在線中文文檔連接以下:vim
Vim 在線中文文檔:http://vimcdoc.sourceforge.net/doc/help.htmlapp
這個文檔超級大而全,方便查閱,若是想入門試試 Vim 的話,不太適合,下面我整理了一些方便入門的經常使用快捷鍵。編輯器
===========================================================學習
模式操做 ui
===========================================================spa
Vim具備五種基本模式,默認是普通模式,在普通模式下是沒法進行編輯的,須要進入插入模式。.net
(Window 下用記事本打開一個 txt, 默認就是插入模式,因此就能夠直接編輯,Vim 不是這樣的!!)命令行
===========================================================
普通模式(normal mode)
插入模式(insert mode)
命令模式(command mode)
可視模式(visual mode)
替換模式(replace mode)
其餘模式下要回到普通模式:
===========================================================
Esc
Ctrl + c
Ctrl + [
進入插入模式
===========================================================
i insert 在光標前插入
I insert 在當前行的第一個非空白字符以前插入
a append 在光標後插入
A append 將輸入點移動到在當前行的行尾來輸入文本
o 在當前行下方新啓一行,並進入插入模式。
O 在當前行上方新啓一行,並進入插入模式。
s substitute 用來刪除當前光標下的字符,而後進入到插入模式
cw change word 用的較少,和 s 類似,只不過刪除的單位是單詞。
首先刪除由光標(包括光標)開始的一個單詞,而後進入插入模式,
進入命令模式:
===========================================================
:, /
: 以後,使用方向鍵能夠調出歷史命令。甚至輸入:s以後,
會對歷史命令進行過濾,只調出以s開頭的歷史命令。
:help command 查看幫助文檔
:: 查看命令行模式的幫助
進入可視模式:該模式下方便對文本進行選擇
===========================================================
v, V, Ctrl+v
v visual,可視,以字符爲單位移動
V 可視,以行爲單位移動
Ctrl + v 可視,以塊爲單位移動
可視塊模式應用:添加多行的 // 註釋
首先將光標移動到要該代碼塊第一行的行首字母上,進入可視塊模式,
而後移動光標到該代碼塊的最後一行的行首字母上,這時會高亮顯示一列。
以後鍵入 I,注意不是i,此時信息區顯示的是插入模式了,
而後鍵入註釋符"//",將第一行註釋掉,而其餘行沒有變化。
不用着急,最後鍵入Esc退回到普通模式。
這時其餘被選中的行的前面都添加了註釋符,從而都被註釋掉了
進入替換模式
===========================================================
r, R
r replace,該鍵只是用於替換光標所在的單個字符而已。
R 持續替換直至退出 R 模式,在該模式下能夠按照 backspace 恢復
===========================================================
關於模式的更多說明請查看Vim幫助文檔,使用命令:
:help mode-switching
===========================================================
文件操做
===========================================================
分割窗口
===========================================================
:sp vim.txt split,水平分割窗口
:vs vim.txt vertical split,垂直地分割窗口可視塊模式來完成了。
窗口切換
===========================================================
Ctrl + w + [h, j, k, l]
Ctrl 在Vim中"^"通常表示Ctrl按鍵
w window
h,j,k,l 就是上下左右四個方向
關閉窗口
===========================================================
Ctrl + w + [c] 關閉當前窗口
Ctrl + w + [o] 關閉其餘窗口
保存文件
===========================================================
:w write,保存當前文件
:wa writeall,保存全部文件
退出文件
===========================================================
:q quit,關閉當前窗口或者當前標籤頁
:wq write + quit,先保存再關閉
===========================================================
導航以及跳轉
===========================================================
Vim中的移動能夠分爲兩類:導航以及跳轉。
導航是小範圍的移動;而跳轉是大範圍且並不肯定執行後光標位置的移動。
Vim幫助文檔裏面將這類操做叫作motion操做。可查看幫助:
:help motion
導航
===========================================================
h, j, k, l, w, e, b, f, F, t, ,, ;
h, j, k, l 上下左右四個方向移動
w word,以單詞爲單位正向移動,光標停在第一個字母上
e end,以單詞爲單位正向移動,光標停在最後一個字母上
b back,以單詞爲單位反向移動,光標停在第一個字母上
f + key forward,移動到該行的下一個出現字符(key)的位置,
而後能夠按下 ; 正向循環移動或者 , 反向循環移動
F + key 用法與 f 相同,只不過是反向移動
t till,效果與 f 相似,只不過 f 會將光標放置在目標字符上,
而 t 是將光標放置在目標字符的前一個字符上。
跳轉
===========================================================
^, 0, $, %, [[, ]], gg, G, L, H, M, m, ', :[number]
^ 移動到本行第一個非空白字符處
0 移動到行首(參考命令 I)
$ 移動到行尾(參考命令 A)
% 在本行中正向查找或調整的配對字符(([{}])),
]] 組合鍵,在文本中t跳轉到下一個位於行首的'{'字符
[[ 相似於 ]],只不過是反向
gg 跳轉到整個文本的第一行
G 跳轉到整個文本的最後一行
H high,跳轉到當前屏幕顯示文本範圍內的第一行
L low,跳轉到當前屏幕顯示文本範圍內的最後一行
M middle,將光標移動到屏幕顯示文本範圍的中間
m 組合鍵,與 Vim 的寄存器有關(請看文檔 :help registers)
m - mark,輸入 m 以後再輸入寄存器序號(a - z, A - Z),
就將當前光標位置信息放到寄存器中保持,至關於設置了書籤。
' 組合鍵,後跟寄存器序號,跳轉到 m 設置的書籤處
:[number] 是命令模式下的用法,跳轉到指定行,number 爲行數
翻頁
===========================================================
Ctrl + f, Ctrl + b, Ctrl + d, Ctrl + u
Ctrl + f forward,至關於 PageDown
Ctrl + b back,至關於 PageUp
Ctrl + d down,正向翻半頁
Ctrl + u up,反向翻半頁
===========================================================
編輯操做
===========================================================
刪除
===========================================================
x, d + [跳轉/移動]
x 剪切,內容保存在寄存器 x 中
d + 跳轉/移動 delete,組合鍵,刪除並經內容保存到寄存器 x 中
dw delete word,正向刪除單詞
d0 反向刪除到行首
d$ 正向刪除到行尾
dd 刪除整行
d^ 刪除之本行第一個非空白字符處
移動
===========================================================
x, y, yy, Y, p, P, "+y, "+p
移動文本實際上是一個組合的操做:
首先選擇要移動的文本;
而後剪切或者複製該文本;
最後粘帖該文本。
x 剪切
y yank,複製,內容保存在寄存器 x 中
Y, yy 複製光標所在行
p paste,將寄存器 x 中保存的文本取出並粘貼在光標位置以後
P 同 p, 只是粘貼在光標位置以前
" + y 複製文本到系統複製粘帖板(注意不是 Vim 的寄存器 x 了)
" + p 是從系統複製粘帖板取出文本進行粘帖操做。
撤銷重作
===========================================================
u, Ctrl + r
u undo,撤銷
Ctrl + r redo,重作
查找
===========================================================
/ + key
/ 後跟要查找的字符串,而後輸入 n 循環查找。查找字符串支持正則匹配式。
原文連接羅朝輝(http://blog.csdn.net/kesalin)