開發轉向LINUX平臺,用好vi對提高工作效率極有好處。原本在讀大學的時候學過一陣vi,略知皮毛,後來一直在windows平臺上做開發就荒廢了,現在拾起來。
把這些命令稍微整理了下,以作個備忘吧。
移動光標
h: 左
j: 下
k: 上
l: 右
w: 向右移動一個word
b: 向左移動一個word
0: 行首(第一列)
^: 第一個非空(空格或tab)字符
$: 行尾
H: 移動光標到屏幕頂行(high)
M: 移動光標到屏幕中間(middle)
L: 移動光標到屏幕底部(low)
nG: 移動光標到第n行
gg: 移動光標到文件第一行行首
G: 移動光標到文件最後一行行首
Ctrl+f: 屏幕向文件尾移動一屏
Ctrl+b: 屏幕向文件首移動一屏
Ctrl+u: 屏幕向文件首移動半屏
Ctrl+d: 屏幕向文件尾移動半屏
編輯
i: 在當前字符前面輸入字符: insert
I: 在當前行首插入字符
a: 在當前字符後面輸入字符: append
A: 在當前行尾插入字符
x: 刪除當前字符
r: 以隨後輸入的字符替代當前字符 replace
R: 替換當前字符及其後的字符,直到按ESC
o: 在當前行之下新開一行
O: 在當前行之上新開一行
dw: 刪除當前word
d$: 刪除從當前字符到行尾中間所有的字符
D: 同上
d0: 刪除從當前字符到行首中間所有的字符
d^: 刪除從當前字符到第一個非空字符中間的所有字符
dd: 刪除當前行
ndd:從當前行開始刪除n行. 比如5dd,從當前行開始刪除5行
s: 刪除當前字符並進入插入模式
S: 刪除當前行並進入插入模式
J: 合併行
u: 撤消
Ctrl+r: 撤消
選擇和複製
yy: 複製當前行
nyy: 比從當前行復制n行.比如5yy,從當前行開始複製5行
y$: 複製當前所在字符到行尾
y0: 複製當前所在字符到行首
y^: 複製當前所在字符到第一個非空字符
當前字符按下v,移動光標,選中的字符串會高亮顯示,選中後按y(複製)或d(剪切),然後移動光標到要複製或剪切的目標位置,按p
搜索
/keyword : 搜索keyword
?keyword : 向前搜索keyword
n: 下一個匹配的字符串 next
N: 上一個匹配的字符串
退出
:w 保存文件
:q 退出程序
:q! 強制退出程序,不保存
:wq 保存文件並退出
常用設置:
:set number 顯示行號
:set ignorecase 搜索時忽略大小寫
:syntax on
:set ts=4
:set expandtab
可以在vimrc中做以上的設置,這樣即使退出vim,再次啓動,設置也會保留