開發轉向LINUX平臺,用好vi對提升工做效率極有好處。本來在讀大學的時候學過一陣vi,略知皮毛,後來一直在windows平臺上作開發就荒廢了,如今拾起來。vim
把這些命令稍微整理了下,以做個備忘吧。windows
移動光標app
h: 左ide
j: 下開發
k: 上字符串
l: 右it
w: 向右移動一個wordclass
b: 向左移動一個word效率
0: 行首(第一列)vimrc
^: 第一個非空(空格或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,再次啓動,設置也會保留