部分参考http://www.cnblogs.com/yangjig/p/6014198.html
h 光标左移动
j 光标下移一行
k 光标上移一行
l 光标右移动
$ 光标到行末
^ 光标到行首第一个非空字母
0 光标到行首
dw 删除光标后第一个单词
db 删除光标前第一个单词
dd 删除当前一行
y 复制选中的内容
% 查找“(”,“)”,“{”,“}”的配对符
:reg 查看当前复制的内容(寄存器内容)
"ay 复制内容到a字母寄存器
"ap 粘贴将a字母寄存器中的内容
* 向前查询光标后的一个单词
# 身后查询光标后的一个单词
o(字母) 在下一行首插入
O(字母) 在当前行前一行插入,并把当前行下移动一行
a 将可在光标之后插入文本
A 当前行最后插入
- 光标到上一行开头
+ 光标到下一行开头
G 最后一行
nG 第n行
. 回到上一次地方
u 撤消
ctrl-r 重做
ctrl-ww 切换窗口
M 移至视窗的中间那行
H 移至视窗的第一行
L 移至视窗的最后一行
CTRL-U 显示文本的窗口向上滚动了半屏
CTRL-D 命令将窗口向下移动半屏
ctrl-e 向上滚动
ctrl-y 向下滚动
zz 把当前行置为屏幕正中央
zt 把当前行置于屏幕顶端
zb 则把当前行置于屏幕底端
ctrl-f 下翻页一页
ctrl-b 上翻页一页
ctrl-n 光标下一行
ctrl-p 光标上一行
( 光标前移一句
) 光标后移一句
{光标前移一段
}光标后移一段
n% 到文件n%的位置
v 从光标位置开始选中
V 从光标行开始选中
viw 选中当前所在单词
b 移动到上个字的第一个字母
w 移动到下个字的第一个字母
e 移动到下个字的最後一个字母
f{char} 移动到当前行下一个{char}出现的位置
F{char} 移动到上一个{char}出现的位置
t{char} 移动到当前行下一个{char} 出现的位置之前
T{char} 移动到当前行前一个{char}出现的位置之后
; 继续向后匹配
, 向前匹配
ctrl-G 查看当前行行数,到文档总行数的百分比
/ 向下查找
? 向上查找
n 下一个匹配
N 上一个匹配
ctrl-o 光标回到上一个位置
ctrl-i 光标回到下一个位置
:s/thee/the 只改变光标所在行的第一个匹配
:s/thee/theg 是替换全行的匹配串
:#,#s/old/new/g 其中 #,# 代表的是替换操作的若干行中首尾两行的行号。
:%s/old/new/g 则是替换整个文件中的每个匹配串。
:%s/old/new/gc 会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换。
:! 然后紧接着输入一个外部命令可以执行该外部命令 如:!ls
:r FILENAME 向当前文件中插入另外的文件的内容
使用标记可以快速移动。到达标记后,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退 和 前进 。
m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。
m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。
`{a-z}: 移动到标记位置。
'{a-z}: 移动到标记行的行首。
`{0-9}:回到上[2-10]次关闭vim时最后离开的位置。
``: 移动到上次编辑的位置。''也可以,不过``精确到列,而''精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。
`": 移动到上次离开的地方。
`.: 移动到最后改动的地方。
:marks 显示所有标记。
:delmarks a b -- 删除标记a和b。
:delmarks a-c -- 删除标记a、b和c。
:delmarks a c-f -- 删除标记a、c、d、e、f。
:delmarks! -- 删除当前缓冲区的所有标记。
:help mark-motions 查看更多关于mark的知识。
宏
. --重复上一个编辑动作
qa:开始录制宏a(键盘操作记录)
q:停止录制
@a:播放宏a
显示行数
:set nu 或者 :set number
隐藏行数
:set nonu 或者 :set nonumber