Vim常用快捷键
Vim常用命令
移动命令 | |||
---|---|---|---|
快捷键 | 说明 | 快捷键 | 说明 |
常用移动 | |||
h或者BackSpace | 左移动 | j | 下移动 |
k | 上移动 | l或者空格 | 右移动 |
gg | 移动到文本开头 | G | 移动到文本结尾 |
:n | 移动到第n行开头 | nG | 移动第n行开头 |
gj | 移动到一段内的下一行 | gk | 移动到一段内的上一行 |
+或Enter | 把光标移至下一行第一个非空白字符 | - | 把光标移至上一行第一个非空白字符 |
w | 移动到下一个单词开头 | W | 移动到下一个单词开头,但忽略一些标点 |
e | 移动到下一个单词结尾 | E | 移动到下一个单词结尾,但忽略一些标点。 |
b | 移动到上一个单词的开头 | B | 移动到上一个单词的开头,但忽略一些标点。 |
ge | 移动到上一个单词的结尾 | gE | 移动到上一个单词的结尾,但忽略一些标点。 |
行内移动 | |||
0 | 移动到行首 | ^ | 移动到第一个非空字符 |
$ | 移动到行尾 | ||
查询移动(字符) | |||
fc | 把光标移到同一行的下一个c字符处 | Fc | 把光标移到同一行的上一个c字符处 |
tc | 把光标移到同一行的下一个c字符前 | Tc | 把光标移到同一行的下一个c字符后 |
; | 配合f & t使用,重复一次 | , | 配合f & t使用,反向重复一次 |
查询移动(单词) | |||
:/something | 光标后在查找something字符串 | :?something | 光标后在查前something字符串 |
:/pattern/+number | 将光标停在包含pattern的行后面第number行上 | :/pattern/-number | 将光标停在包含pattern的行前面第number行上 |
n | 向后查找下一个 | N | 向前查找下一个 |
屏幕移动 | |||
ctrl+f | 下翻一屏 | ctrl+b | 上翻一屏。 |
ctrl+d | 下翻半屏 | ctrl+u | 上翻半屏 |
ctrl+e | 向下滚动一行 | ctrl+y | 向上滚动一行 |
n%: | 到文件n%的位置。 | zz | 将当前行移动到屏幕中央 |
zt | 将当前行移动到屏幕顶端 | zb | 将当前行移动到屏幕底端 |
标记移动 | |||
m{a-z} | 标记光标所在位置,局部标记,只用于当前文件 | m{A-Z} | 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效 |
`{a-z} | 移动到标记位置 | ‘{a-z} | 动到标记行的行首 |
`` | 移动到上次编辑的位置,如果想跳转到更老的位置,可以按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的知识 |
排版 | |||
<< | 向左缩进一个shiftwidth | >> | 向右缩进一个shiftwidth |
J | 拼接当前行和下一行 | ||
u | 可视模式文本变小写 | U | 可视模式文本变大写 |
Ctrl+i | 前进 | Ctrl+o | 后退 |
插入命令 | |||
基本插入 | |||
i | 在光标前插入 | I | 在当前行第一个非空字符前插入 |
a | 在光标后插入 | A | 在当前行最后插入 |
o | 在下面新建一行插入 | O | 在上面新建一行插入 |
文本对象 | |||
aw(around word) | 当前单词及一个空格 | aW(around WORD) | 当前字串及一个空格 |
iw(inside word) | 当前单词 | iW(inside WORD) | 当前字串 |
ip | 当前段落(inside paragraph) | ap(around paragraph) | 当前段落及一个空格 |
is(inside sentence) | 当前句子 | as(around sentence | 当前句子及一个空格 |
删除插入 | |||
c | 删除在可视模式下选中的文本,进入插入模式 | c$ 或 C | 删除当前位置到行尾的内容,进入插入模式 |
[n]cc | 删除(n)行,进入插入模式 | c[n]w | 删除光标后(n)个词,进入插入模式 |
c[n]h | 删除光标前(n)个字符,进入插入模式 | c[n]l | 删除光标处(n)个字符,进入插入模式 |
c[n]j | 删除光标所行及向下(n)行,进入插入模式 | c[n]k | 删除光标所行及向上(n)行,进入插入模式 |
[n]s | 删除光标处字符,进入插入模式;相当于c[n]l | [n]S | 删除光标所在行,在当前行的行首开始插入模式;相当于[n]cc |
替换 | |||
:s/old/new | 用new替换当前行第一个old | :s/old/new/g | 用new替换当前行所有的old |
:n1,n2s/old/new/g | 用new替换文件n1行到n2行所有的old | ||
:%s/old/new/g | 用new替换文件中所有的old | ||
:%s/^/xxx/g | 在每一行的行首插入xxx,^表示行首 | :%s/$/xxx/g | 在每一行的行尾插入xxx,$表示行尾 |
删除命令 | |||
d | 删除(剪切)在可视模式下选中的文本 | d$ 或 D | 删除(剪切)当前位置到行尾的内容 |
[n]dd | 删除(剪切)(n)行,进入插入模式 | d[n]w | 删除(剪切)(n)个单词 |
d[n]h | 删除光标处(剪切)(n)个字符 | d[n]l | 删除光标处(剪切)(n)个字符 |
d[n]j | 删除(剪切)光标所行及向下(n)行 | d[n]k | 删除(剪切)光标所行及向上(n)行 |
[n]x | 删除(剪切)光标处字符;相当于d[n]l | [n]X | 删除(剪切)光标前字符;相当于d[n]h |
复制命令 | |||
y | 复制在可视模式下选中的文本 | ||
y$ | 复制光标处到行尾 | y0 | 复制光标处到行首 |
ygg | 复制光标处到文本首行 | yG | 复制光标处到文本末尾 |
[n]yy 或[n]Y | 复制[n]整行文本 | y[n]w | 复制(n)个单词 |
y[n]h | 复制光标处(n)个字符 | y[n]l | 复制光标处(n)个字符 |
y[n]j | 复制光标所行及向下(n)行 | y[n]k | 复制光标所行及向上(n)行 |
粘贴 | |||
p | 在光标之后粘贴 | P | 在光标之前粘贴 |
撤销与重做 | |||
u | 取消一个改动 | ctrl+r | 重做最后的改动 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 KLF`S BLOG!
评论