vim按键
说明
摘录vim编辑器的常用按键
vim教程
:help tutor@cn
常用按键
d ###< 剪切
y ###< 复制
s ###< 剪切并进入insert模式
p ###< 粘帖
自动编排格式
可视模式选中代码行后按’=’
重复操作
. ###< 重复上次的命令
10dd ###< 在按键前加数字(重复次数)
100iinsert[ESC] ###< 插入100个insert
缩进代码
>>
<<
移动、跳转
k
h l
j
w ###< 光标往前移动一个词
b ###< 光标往后移动一个词
0 ###< 移动光标到当前行首
^ ###< 移动光标到当前行的第一个字母位置
$ ###< 移动光标到行尾
) ###< 移动光标到下一个句子
( ###< 移动光标到上一个句子
H ###< 移动光标到屏幕上面
M ###< 移动光标到屏幕中间
L ###< 移动光标到屏幕下面
b, w ###< 移动到上,下一个词
gg, G ###< 跳到文档开头,结尾
100G ###< 跳到第100行
% ###< 跳到括号匹配处
* ###< 匹配当前单词,移动到下一个匹配单词
# ###< 匹配当前单词,移动到上一个匹配单词
书签
ma ###< 在当前光标的位置标记一个书签,名字为a(书签名只能是小写字母)
`a ###< 到书签a处
`. ###< 到你上次编辑文件的地方
插入
i ###< 在当前字符的左边插入
I ###< 在当前行首插入
a ###< 在当前字符的右边插入
A ###< 在当前行尾插入
o ###< 在当前行下面插入一个新行
O ###< 在当前行上面插入一个新行
c{motion} ###< 删除motion命令跨过的字符并进入insert模式
d{motion} ###< 删除motion命令跨过的字符
退出:
:q! ###< 不保存退出
:wq ###< 保存退出
ZZ ###< 保存并退出
undo & redo
u ###< undo
<C+r> ###< redo
复制粘帖剪切:
p ###< 粘帖
]p ###< 粘帖 自动调整被粘贴的文本的缩进去适应当前代码的位置
dd ###< 剪切整行
S ###< 剪切整行后进入insert模式
dw ###< 剪切一个单词
cw ###< 剪切一个单词后进入insert模式
s ###< 剪切一个字符
x ###< 剪切一个字符后进入insert模式
D ###< 剪切至行尾
xp ###< 交换两个字符
ddp ###< 交换两行
yy,Y ###< 复制一行
可视模式即选择模式 配合y(复制),p(粘帖)
v ###< 进入基于字符的可视模式
V ###< 进入基于行的可视模式
y ###< 复制选择的部分
d ###< 剪切选择的部分
翻页
<C+f>, <C+b> ###< 向下,上翻页
<C+d>, <C+u> ###< 向下,上半翻页
跳到第23行
23gg,23G,:23
查找替换
<C-w> f ###< 查找词
gf ###< 查找词
/text ###< 从当前光标处开始搜索字符串text
?text ###< 和上面类似,但是是反方向
# ###< 从光标向后查找整个关键词
* ###< 从光标向前查找整个关键词
:s/if/else ###< 查找替换下一个if
:%s/if/else ###< 查找替换所有if
:s/if/else/g ###< 只对当前行有效
:1,3 s/if/else/g ###< 只对1,3行有效
正则表达区别:词头锚定用\而不是^
:grep /\<main\>/ src/*.c ###<
:vimgrep /\<main\>/ src/*.c ###<
窗口
:split/vsplit ###< 分隔一个窗口
:new/vnew ###< 创建一个新的窗口
:sf xxx ###< 在新窗口中打开xxx文件
:close ###< 关闭当前窗口
:only ###< 关闭除当前窗口外所有窗口
<C-w> v ###< 分割
<C-w> h ###< 到左面的窗口
<C-w> j ###< 到下面的窗口
<C-w> k ###< 到上面的窗口
<C-w> l ###< 到右面的窗口
<C-w> t ###< 到顶部的窗口
<C-w> b ###< 到底部的窗口
<C-w> w ###< 切换窗口
<C-w> > ###< 调整窗口大小
<C-w> < ###< 调整窗口大小
跳转
[[ 向前跳到顶格的第一个"{"
[] 向前跳到顶格的第一个"}"
][ 向后跳到顶格的第一个"{"
]] 向后跳到顶格的第一个"}"
[{ 跳到本代码块(由{}界定)的开头
[} 跳到本代码块的结尾
NERD Commenter注释代码
,c Space ###< 注释代码
,c u ###< 取消注释
,c c ###< 注释当前行
vim快捷键图示