大家好,又见面了,我是你们的朋友全栈君。
IdeaVim 基本操作 - 安装插件
- ideaVim 剪贴板与系统剪贴板同步
- Caps Lock 键映射为 Esc 键
- 光标的移动
- 文本的插入
- 剪切和复制
- 撤销与重做
- 查找与替换
- 宏的使用
- 排版与辅助
安装插件
- File-Settings-Plugins,Browse Repositories,输入ideavim,安装
- 重启 IntelliJ IDEA
ideaVim 剪贴板与系统剪贴板同步
- 在ideavimrc文件中添加一行
:set clipboard=unnamedplus,unnamed
- 保存并退出
:wq
- 重启 IntelliJ IDEA
Caps Lock 键映射为 Esc 键
- 到 Autohotkey 官网下载软件并安装
- 新建 ahk 文件,添加以下内容并保存
Capslock::Esc
Esc::Capslock
- 双击该 ahk 文件,按键映射即正常运行
光标的移动
- 基本移动
以下移动都是在normal模式下
快捷键 | 含义 |
---|---|
h或退格 | 左移一个字符 |
l或空格 | 右移一个字符 |
j | 下移一行 |
k | 上移一行 |
或Enter | 把光标移至下一行第一个非空白字符 |
– | 把光标移至上一行第一个非空白字符 |
w | 前移一个单词,光标停在下一个单词开头 |
e | 前移一个单词,光标停在下一个单词末尾 |
b | 后移一个单词,光标停在上一个单词开头 |
ge | 后移一个单词,光标停在上一个单词末尾 |
{ | 前移1段 |
} | 后移1段 |
上面的操作都可以配合n使用,比如在正常模式下输入3h,则光标向左移动3个字符
快捷键 | 含义 |
---|---|
0 | 移动到行首 |
$ | 移动到行尾 |
^ | 移动到本行第一个非空白字符 |
n| | 把光标移到递n列上 |
nG | 到文件第n行 |
:n<cr> | 移动到第n行 |
:$<cr> | 移动到最后一行 |
H | 把光标移到屏幕最顶端一行 |
M | 把光标移到屏幕中间一行 |
gg | 到文件头部 |
G | 到文件尾部 |
- 翻屏
快捷键 | 含义 |
---|---|
ctrl f | 下翻一屏 |
ctrl b | 上翻一屏 |
ctrl d | 下翻半屏 |
ctrl u | 上翻半屏 |
ctrl e | 向下滚动一行 |
ctrl y | 向上滚动一行 |
n% | 到文件n%的位置 |
zz | 将当前行移动到屏幕中央 |
zt | 将当前行移动到屏幕顶端 |
zb | 将当前行移动到屏幕底端 |
文本的插入
- 基本插入
快捷键 | 含义 |
---|---|
i | 在光标前插入 |
a | 在光标后插入 |
I | 在当前行第一个非空字符前插入 |
A | 在当前行最后插入 |
gI | 在当前行第一列插入 |
o | 在下面新建一行插入 |
O | 在上面新建一行插入 |
一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。 这在插入分割线时非常有用,如30i 就插入了36个 组成的分割线
- 改写插入
快捷键 | 含义 |
---|---|
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 | 删除指定数目的行,并以所输入文本代替之 |
注意,类似cnw,dnw,ynw的形式同样可以写为ncw,ndw,nyw
剪切和复制
快捷键 | 含义 |
---|---|
[n]x | 剪切光标右边n个字符,相当于d[n]l |
[n]X | 剪切光标左边n个字符,相当于d[n]h |
y | 复制在可视模式下选中的文本 |
yy or 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$ or 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 | 剪切一个词和剪切一个句子,即使光标不在词首和句首也没关系 |
dt字符 | 删除本行内容,直到遇到第一个指定字符 [不包括该字符] |
df字符 | 删除本行内容,直到遇到第一个指定字符 [包括该字符] |
p | 在光标之后粘贴 |
P | 在光标之前粘贴 |
撤销与重做
快捷键 | 含义 |
---|---|
u | 取消一个改动 |
ctrl r | 重做最后的改动 |
查找与替换
- 查找
快捷键 | 含义 |
---|---|
/something | 在后面的文本中查找something |
?something | 在前面的文本中查找something |
/pattern/ number | 将光标停在包含pattern的行后面第number行上 |
/pattern/-number | 将光标停在包含pattern的行前面第number行上 |
n | 向后查找下一个 |
N | 向前查找下一个 |
- 替换
快捷键 | 含义 |
---|---|
: 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,$表示行尾 |
所有替换命令末尾加上c,每个替换都将需要用户确认。 如:%s/old/new/gc,加上i则忽略大小写(ignore)
宏的使用
快捷键 | 含义 |
---|---|
q[a-z] | 开始录制宏 |
q | 停止录制 |
@[a-z] | 使用宏 |
@@ | 调用最近使用的宏 |
n@[a-z] | 重放宏n次 |
:normal @[a-z] | 在选择区域的每一行上并行执行宏 |
排版与辅助
快捷键 | 含义 |
---|---|
<< | 向左缩进一个shiftwidth |
>> | 向右缩进一个shiftwidth |
gd | 跳转到局部变量的定义处 |
zo | 打开折叠的文本 |
zc | 收起折叠 |
zR | 打开所有折行 |
zM | 收起所有折行 |
Ctrl i | 前进 |
Ctrl o | 后退 |
~ | 反转光标所在字符的大小写 |
可视模式下的U或u | 把选中的文本变为大写或小写 |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187141.html原文链接:https://javaforall.cn