使用IdeaVim插件入门

发表于2020-04-29,长度2388, 150个单词, 6分钟读完
Flag Counter

大家使用快捷键的目的就是不想使用鼠标,手离开键盘去操作鼠标会“大幅度”降低我们的效率。虽然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
Written on April 29, 2020
分类: dev, 标签: java
如果你喜欢,请赞赏! davelet