cw: 替换从光标所在位置后到一个结尾的字符
^:到本行第一个字符不是blank的位置。
u: undo
<C-r>: redo
ZZ: 保存并退出,不需要加冒号
N<command> 重复某个命令N次
100idesu [ESC] ---> 插入100次desu
2dd删除两行
3p 粘贴三次
光标移动:
w,e 单词的开始和结束(字母、数字、下划线组成的单词)
W,E 由blank分隔符构成的单词
%: 匹配括号移动
*和#: 匹配光标当前所在的单词,*是下一个,#是上一个
<start position><command><end position>
eg. 0y$ ---> 从本行开始处拷贝到本行结束
gU变大写
gu变小写
vim的超能力:
t): 到)前的第一个字符
f):找到下一个为)的字符处
T和F功能相同,方向相反
dt" : 删除所有的内容,直到遇到"
成块注释程序
0 <C-v> 上下移动 I //
注: windows下的vim使用<C-p>
自动补全功能
<C-p>或者<C-n>
宏录制:
qa把你的操作记录在寄存器a中
@a 会replay你录制的宏
@@ 是一个快捷键用来replay你最新录制的宏
q 停止录制
假设文本中这一行只有1, 首先qa,然后Yp,<C-a>,将下一行的1变成2, 接着q(停止录制)。100@@会创建100行,数字大小从小到大
J 把所有的行连在一起
<或>左右缩进
= 自动缩进
在所有被选择行的末尾加上点东西:
<C-v>, 选中相关的行,$到行最后,A 输入字符串 ESC
分屏
split, vsplit
<C-w><direction>
关闭当前窗口 <C-w>c
<Ctrl-w> s 上下分割当前打开的文件
<Ctrl-w> v 垂直分割当前打开的文件
<Ctrl-f> 向下一页
<Ctrl-b> 向前一页
<Ctrl-u> 向上半页
<Ctrl-d> 向下半页
输入"a3yy
解释:引号要结合shift输入,a代表剪贴板a(26个英文字母都可以),3yy当然代表从当前行复制3行了
进入指令模式,输入"ap
解释:引号要结合shift输入,a代表使用剪贴板a,p当然代表粘贴了
将系统剪切版的内容粘贴到vim中:在输入模式下,使用shift+Insert
深入学习: vimtutor, help usr_02.txt