# IntelliJ IDEA vim
一、基本移动
h —— ←
j —— ↓
k —— ↑
l —— →
gj:移动到一段内的下一行
gk:移动到一段内的上一行
二、正常模式(normal-mode)
- motions
快捷键 | 操作说明 |
---|---|
0(数字) | 光标移至行首(忽略缩进) |
^ | 光标移至行首(保留缩进) |
$ | 光标移至行尾 |
e | +(正向)光标移至单词结尾 |
ge |
|
E | +(正向)光标移至单词结尾,如果词尾有标点,则移动到标点 |
gE |
|
w | +(正向)光标移至单词开头(以空格、符号分割) |
b |
|
W | +(正向)光标移至单词开头(以符号分割) |
B |
|
gg | 光标移至文章开头 |
G | 光标移至文章末尾 |
f+’x’ | 把光标移到同一行的下一个x字符 (‘;’为下一个 ‘,’为上一个) |
F+’x’ | 把光标移到同一行的上一个x字符处 (‘;’为下一个 ‘,’为上一个) |
t+’x’ | 把光标移到同一行的下一个x字符前 (‘;’为下一个 ‘,’为上一个) |
T+’x’ | 把光标移到同一行的上一个x字符后 (‘;’为下一个 ‘,’为上一个) |
n+l | 把光标移到第n列 |
n+G | 把光标移到第n行 |
H | 把光标移到屏幕最顶端一行 |
M | 把光标移到屏幕中间一行 |
L | 把光标移到屏幕最底端一行 |
> | 向右缩进 |
<< | 向左缩进 |
% | 找到括号的另一半 |
~ | 反转光标所在字符的大小写 |
2. 翻屏
快捷键 | 操作说明 |
---|---|
⌃+f | 下翻一屏 |
⌃+d | 下翻半屏 |
⌃+e | 下滚一行 |
⌃+b | 上翻一屏 |
⌃+u | 上翻半屏 |
⌃+y | 上滚一行 |
zz | 将当前行移动到屏幕中央 |
zt | 将当前行移动到屏幕顶端 |
zb | 将当前行移动到屏幕底端 |
3. 剪切和复制、粘贴
快捷键 | 操作说明 |
---|---|
[n]x | 剪切光标右边n个字符,相当于d[n]l |
[n]X | 剪切光标左边n个字符,相当于d[n]h |
y | 复制在可视模式下选中的文本 |
yy/Y | 复制整行文本 |
y[n]w | 复制一(n)个词 |
y[n]l | 复制光标右边1(n)个字符 |
y[n]h | 复制光标左边1(n)个字符 |
y$ | 从光标当前位置复制到行尾 |
y0 | 从光标当前位置复制到行首 |
:m,ny | 复制m行到n行的内容 |
y1G/ygg | 复制光标以上的所有行 |
yG | 复制光标以下的所有行 |
yaw | 复制一个词 |
yas | 复制一个句子 |
d | 删除(剪切)在可视模式下选中的文本 |
d$/D | 删除(剪切)当前位置到行尾的内容 |
d[n]w | 删除(剪切)1(n)个单词 |
d[n]l | 删除(剪切)光标右边1(n)个字符 |
d[n]h | 删除(剪切)光标左边1(n)个字符 |
d0 | 删除(剪切)当前位置到行首的内容 |
[n] dd | 删除(剪切)1(n)行 |
:m,nd | 剪切m行到n行的内容 |
d1G/dgg | 剪切光标以上的所有行 |
dG | 剪切光标以下的所有行 |
daw | 剪切一个词 |
das | 剪切一个句子 |
d/f | 这是一个比较高级的组合命令,它将删除当前位置 到下一个f之间的内容 |
p | 在光标之后粘贴 |
P | 在光标之前粘贴 |
4. 文本对象
快捷键 | 操作说明 |
---|---|
aw | 一个词 |
as | 一句 |
ap | 一段 |
ab | 一块 |
y, d, c, v都可以跟文本对象。
三、插入模式(insert-mode)
- 基本插入
快捷键 | 操作说明 |
---|---|
i | 光标前插入光标前插入 |
I | 行首插入 |
a | 光标后插入 |
A | 行尾插入 |
o | 往下新建行插入 |
O | 往上新建行插入 |
s | 删除当前字符插入 |
S | 删除当前行插入 |
2. 改写插入
快捷键 | 操作说明 |
---|---|
c[n]w | 改写光标后1(n)个词 |
c[n]l | 改写光标后n个字母 |
c[n]h | 改写光标前n个字母 |
[n]cc | 修改当前[n]行 |
[n]s | 以输入的文本替代光标之后1(n)个字符,相当于c[n]l |
[n]S | 删除指定数目的行,并以所输入文本代替之 |
回到正常模式:ESC
Tips:按8,再按i,进入插入模式,输入=,再按esc,就会出现8个=, 这在插入分割线时非常有用。
四、可视模式(visual-mode)
正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。
可视模式下的U或u:把选中的文本变为大写或小写。
五、命令模式(command-mode)
快捷键 | 操作说明 |
---|---|
:w | 保存 |
:wq/ZZ | 保存退出 |
:q | 退出 |
:vs | 垂直分割窗口 |
:sp | 水平分割窗口 |
/x | 在光标后查找x(n下一个/N上一个) |
?x | 在光标前查找x(n下一个/N上一个) |
:nohl | 取消高亮 |
: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, / x x x / g | 在 每 一 行 的 行 尾 插 入 x x x , 表示行尾 |