Vim
2019 linuxVim 中的一些快捷键。
vim 的模式
模式 | 说明 |
---|---|
正常模式 | 快捷命令,或者按:输入命令行 |
插入模式 | 输入文本,按 i、a、o、s 等进入 |
可视模式 | 选择文本,按 v 进入可视模式,V 进入可视行模式, ctrl + v 进入可视块模式 |
插入模式
按键 | 动作 |
---|---|
a | 在光标所在字符后添加文本 |
A | 在当前行最后一个字符后添加文本 |
c | 开始修改操作,允许更改当前行文本 |
C | 修改从光标位置开始到当前行末尾范围内的内容 |
i | 在光标所在的字符前插入文本 |
I | 在当前行开头插入文本 |
o | 在当前行下方打开一空行并将光标置于该空行行首 |
O | 在当前行上方打开一空行并将光标置于该空行行首 |
s | 删除光标所在的一个字符,并进入编辑模式 |
S | 删除光标所在的整行,光标保留当前行,不同于 dd |
命令模式
命令 | 动作 |
---|---|
:q | 退出 |
:q! | 放弃缓冲区内容,并退出 |
:w | 保存缓冲区内容 |
:wq | 保存缓冲区内容,并退出 |
ZZ | 退出,仅当文件在最后一次保存后进行了修改,才保存缓冲区内容 |
/something | 在后面的文本查找 something,结合 n 键使用 |
?something | 在前面的文本查找 something,结合 n 键使用 |
:s/old/new | 用 new 替换一个 old |
:s/old/new/g | 用 new 替换当前行所有 old |
:%s/old/new/g | 用 new 替换所有的的 old |
正常模式
光标移动
命令 | 动作 |
---|---|
h/← | 光标向左移动一个字符 |
j/↓ | 光标向下移动一个字符 |
k/↑ | 光标向上移动一个字符 |
l/→ | 光标向右移动一个字符 |
nG/[n]gg | 将光标移到文件 n 行 |
G | 将光标移到文件末行,gg 可以移到首行 |
^ | 将光标移到当前行最开始的字符 |
$ | 将光标移到当前行最后一个字符 |
0 | 将光标移到当前行首 |
w | 将光标每次前移一词 |
b | 将光标每次倒退一词 |
% | 跳转到匹配的项目上,([{}]) |
f{char} | 将光标移至同一行的下一个{char}字符 |
F{char} | 将光标移至同一行的上一个{char}字符 |
t{char} | 将光标移至同一行的下一个{char}字符前 |
T{char} | 将光标移至同一行的下一个{char}字符后 |
; | 配合 f & t,重复一次 |
, | 配合 f & t,反向重复一次 |
H | 移动至屏幕顶部一行 |
M | 移动至屏幕中间一行 |
L | 移动至屏幕底部一行 |
zt | 将当前行移动至屏幕顶部 |
zz | 将当前行移动至屏幕中间 |
zb | 将当前行移动至屏幕底部 |
ctrl+U | 向上翻半页 |
ctrl+B | 上一页 |
ctrl+D | 向下翻半页 |
ctrl+F | 下一页 |
n | 向后查找下一个 |
N | 向前查找下一个 |
g; | 上一个修改的地方 |
g, | 下一个修改的地方 |
* | 向下搜索光标所在的词 |
g* | 向下搜索搜标所在的词,部分符合 |
# | 向上搜索光标所在的词 |
g# | 向上搜索光标所在的词,部分符合 |
复制剪贴
命令 | 动作 |
---|---|
x | 剪切光标位置上的字符 |
r | 代替光标位置上的字符 |
cc | 改写整行 |
c[n]w | 改写 n 个词 |
c[n]c | 改写 n 行 |
d | 可视模式剪切,也可以加左右方向键进行剪切 |
dd | 剪切整行 |
d[n]w | 剪切 n 个词汇, l,h,方向键替换 w 可以选择剪切方向 |
d[n]d | 删除 n 行 |
y | 可视模式复制,也可以加左右方向键进行赋值 |
yy\Y | 复制整行 |
y[n]w | 赋值 n 个词汇,l,h,方向键替换 w 可以选择复制方向 |
y[n]y | 复制 n 行 |
ci[ di[ yi[ | 修改,删除,复制[]之间的内容 |
ca[ da[ ya[ | 修改,删除,复制[]之间的内容, 包含[] |
p | 在当前行后面插入此前被复制或剪切的行 |
P | 在当前行前面插入此前被复制或剪切的行 |
u | 撤销最近一次所做的修改 |
ctrl+R | 取消最近的一次撤销 |
<< | 向左缩进一个宽度 |
>> | 向右缩进一个宽度 |
e | 重新加载文件 |
e! | 放弃当前修改,强制重新载入 |
多标签页
命令 | 动作 |
---|---|
tabe\tabnew | 加上文件名,在新标签页打开文件,否则打开一个空缓冲区 |
gt\tabn | 移动至下一个标签页 |
gT\tabp | 移动至上一个标签页 |
[n]gt | 切换到第 n 个标签页 |
tabc[lose] | 关闭当前标签页 |
tabo[nly] | 关闭其他标签页 |
tabs | 列出所有的标签页 |
:bd | 关闭 buffer |
记录
q<缓冲器名称>
开始进行操作- 操作完毕,在正常模式下按
q
记录完毕 @<缓冲器名称>
执行[num]@<缓冲器名称>
多次执行