开发转向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,再次启动,设置也会保留