部分参考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