目录
前言
Vim有什么特点?
vim是一个高度可配置的文本编辑器,非常稳定,可以高效的创建任何文本、持久的、多级撤销树、支持数百种变成语言和格式、与许多工具集成;
为什么我要安利你在 IEAD 中使用Vim?
1、首先,高效!!!让你体会到什么是 IDEA + Vim = 起飞 这种感觉~
2、如果你使用过 Linux ,修改过服务器上的系统配置文件,就必不可免的使用 vim 编译器;如果不熟练,操作起来是很麻烦的;
3、IDEA 中安装了 vim 插件后,就是一个互补的状态,各自发挥优势,大大提升编程效率~
Vim
Vim 还是有一部分学习成本的,入门稍微有一点难,如果你能坚持看完本文,一旦入门以后就会对她爱不释手(像不像你们的女朋友 doge~);
一、环境配置
在 IDEA 中需要以下三个插件:
- IeadVim
- IdeaVim-EasyMotion
- IdeaVimExtension
步骤如下:
当你的光标变成了小方块后,就说明你的 vim 插件安装好了~,如下图
二、Vim的使用
2.1、方向键 hjkl
这也是刚开始上手使用Vim最不习惯的操作,没有什么好说的,克服这一关,多练就行~
以下为视频演示:
vim方向键
2.2、复制&粘贴
程序员自嘲:我是CV工程师~; 复制粘贴还是要第一时间学会滴~
yy 复制当前行
p 粘贴
如下:
2.3、选择代码块并删除
使用键v k d
补充:也可以使用dd删除一行
gif步骤如下:
1. v 进入内容选择模式(选择代码块);
2. kkk 向上移动3行,并选中;
3. d 删除选中部分;
2.4、块级删除
常用di* 和 da*,这里的*表示边界字符,可以是 双引号,小括号,大括号 等;
比如你要删除双引号中的内容:”hello world”;你就可以通过
di”
进行删除,如果不仅想删除双引号里的内容,还想把双引号一起删除,就可以使用
da”
来完成;删除完双引号里的内容想立即切换到 插入模式 也可以使用
ci”
来完成;
用 di” 删除 双引号 里的内容,删除后想立即进入 插入模式 可以用 ci” 如下:
用 di( 删除 括号里的内容,删除后想立即进入 插入模式 可以用 ci( 如下:
用 di{ 删除 { 里的内容,删除后想立即进入 插入模式 可以用 ci{ 如下:
2.5、各种插入模式
汇总如下:
- a 在光标后,进入插入模式;
- A 在本行结尾,进入插入模式;
- i 在光标前,进入插入模式;
- I 在本行开头,进入插入模式
- o 在本行之后新增一行,并进入插入模式;
- O 在本行之前新增一行,并进入插入模式;
- s 删除当前字符,并进入插入模式;
- S 删除当前行中的所有文本,并进入插入模式;
2.5.1、以下是gif演示
a 在光标后,进入插入模式,如下:
A 在本行结尾,进入插入模式,如下:
i 在光标前,进入插入模式,如下:
I 在本行开头,进入插入模式,如下:
o 在本行之后新增一行,并进入插入模式,如下:
O 在本行之前新增一行,并进入插入模式,如下:
2.6、jump(解放鼠标~)
通过vim真的是减少了很多鼠标操作,接下来再来看看一些更加便利的方案!
1、 f{word} 是用来查找 当前行,当前光标后,是否存在某个字符 {word} 若存在光标就会自动移动过去;
2、 $ 跳转到行尾,^ 跳转到行首;
3、 % 括号匹配跳转 () [] {}
4、 *跳转到i上一个字符定位处;
5、 [n]h/j/k/l 数字加上方向键 代表重复运行多少次;
- 例如 10h 向左移动10个字符,3j 向下移动三行;
6、 G移动到最后一行,gg移动到第一行;
7、 H 移动到当前页的第一行,M 移动到编辑器的中部,L 移动到当前页的最后一行;
8、 [n]w 移动到后面的 第[n]个单词 的开始位置;
- e 移动到下一个单词末尾
- b 移动到上一个单词的开头
三、Action配置
IDEA中很多操作都可以抽象为一个Action,如下:
- Rename File 文件重命名;
- RenameElement 重命名变量 或者 类名;
- GotoImplementation 去接口实现;
- 复制Class引用 CopyReference;
- ……
例如,Vim中可以通过插入命令模式直接调用action,如下,调用 RenameElement 重命名: