使用IdeaVim插件入门
大家使用快捷键的目的就是不想使用鼠标,手离开键盘去操作鼠标会“大幅度”降低我们的效率。虽然idea是以快捷键方便闻名的,不过在窗口编辑时,大部分快捷键都是系统提供的,或者还是离不开鼠标,比如选中一段文字、翻一页等。当然使用aceJump插件也能一定程度解决这个问题,另外keypromoter插件还能提示操作的快捷键;不过我这里还是想记录一下学习IdeaVim的历程。
安装
插件的安装简单,直接搜索ideavim就可以了。它的网址是https://github.com/JetBrains/ideavim。
安装后不说别的操作,我觉得第一步是给插件开关设个快捷键。因为刚开始对它不熟悉,免不了频繁操作打开关闭。它图标在右下角,操作开关十分不方便。所以我加了个快捷码:control+option+command+v。
另外,为了以后方便,我们可以提前创建它的配置文件~/.ideavimrc,当然目前它是空的。
如果你有~/.vimrc文件,可以在~/.ideavimrc中导入:source ~/.vimrc
互通
Idea 自身提供了大量十分好用的快捷键,比如定位Java类command+O、查找Java方法option+command+O、罗列最近打开的文件列表command+E、打开Switcher control+Tab等等。
通过control+Tab打开switcher后,左侧的数字代表了打开和关闭对应视图的快捷键,比如左侧4代表Run窗口,那么可以通过command+4打开和关闭Run窗口(注意看,是command+4不是control+4)
ideavim提供了两个命令查询IDEA自己的快捷键。在命令模式下(就是使用vim的时候按了esc以后)输入冒号(只能英文模式,命令模式不支持中文)打开命令行,命令acionlist可以查询全部IDEA快捷键(回车翻行,空格翻页),可以提供参数进行模糊搜索。找到对应的操作后,无论是否有快捷键,都可以使用第二个命令action+操作名称执行对应的操作。比如输入
:action Run
会运行当前选定的运行类。
最后,我们还可以为ideavim提供自定义快捷键指向idea的操作。比如上面actionlist列出的Run操作,我们想在vim模式下通过按zr执行,可以在命令模式下输入
:nnoremap zr :action Run<CR>
后面的
表示zr这个命令不用经过确认就能执行,不写的话,按下zr后vim会在命令行中键入命令:action Run,这时候需要按下回车才能运行。CR代表输入回车
使用
下面简单介绍一下ideavim的命令(一般和vim的表现一样,不过不排除个别的有差异)
翻页
先来点简单容易上手的,我觉得翻页是应该要掌握的。
- 上翻一页:control+b
- 上翻半页:control+u
- 下翻一页:control+f
- 下翻半页:control+d
如果觉得有点难记就背单词:f是forward,b是backword;u是up,d是down。
跳转
不借助鼠标操作,跳转是必须掌握的能力。 简单的hjkl就不说了。
- 光标跳到屏幕第一行:shift+h
- 光标跳到屏幕最后一行:shift+l
- 光标跳到屏幕中央:shift+m
- 光标所在行跳到屏幕中央:zz
这个也可以使用单词记忆:high/low/middle。
- 光标跳到文件第一行:gg
- 光标跳到文件最后一行:shift+g
- 光标跳到第8行:g8g
- 光标跳转到行首:0或^
- 光标跳转到行末:$
- 光标下移8行:8 control+d
- 光标上移8行:8 control+u
- 按单词向后跳:e
对idea跳转的映射
Idea 做为IDE,提供了大量跳转快捷键,不过多数默认都是使用的command。而ideaVim的快捷键多数是基于control的,所以我们也可以使用control来进行类idea跳转。
方法申明定位
Idea 的原生快捷键是command+b,可以在方法定义是调用点进行跳转(名称是Go To Declaration Or Usage)。vim的键是control+]。不过括号键不是常用键,不一定比原生的快。
返回上一个浏览点
也就是Back,原生快捷键是command+[,或者是option+command+←。vim是单引号键,不过单引号键调回去会定位在行首。这个基本不怎么用,因为不能在文件间跳,实在不实用。
选择
选择多行要首先进入选择模式:shift+v。进入后会立即选中当前行,然后按上下键就可以选择多行。
按范围选择
不知道vim提供了这个功能没有,我们依然可以使用option+↑扩大选择范围。
按块选择
通过control+v进入块选择模式,后面使用上下左右进行选择。这个不知道有啥用。
编辑
如果对vim有过基础的同学来说,编辑能力应该是他们最熟悉的一块。
进入编辑模式
- 从当前位置右侧开始编辑:a
- 从当前位置左侧开始编辑:i (这个用的最多)
- 从当前位置新起一行开始编辑:o(会在当前行和下一行之间插入一个空白行并定位光标)
跳转后编辑
- 光标跳到行末并进入编辑模式:shift+a
- 光标跳到行首并进入编辑模式:shift+i(idea中会略过行首空白符)
复制
- 复制当前行:yy
- 复制包含当前行的一共5行:y5y
剪切行
- 删除当前行:dd
- 删除从当前行开始的一共3行:d3d
粘贴
p,会把复制或剪切的内容粘贴到当前位置。注意:和系统剪贴板不是同一个,command+c复制的内容不会被p粘贴。
删除行
同剪切行。
撤销
- 撤销:u,这个非常有用,就是command+z
- 重做:control+r
删除单词
- 向后删除单词:de
- 向后删除单词及其后面的空格:dw,主要用这个,de不怎么用
- 向前删除单词:db
