学了这么久的VIM,当然还是要用在开发上。下面来介绍一下ideavim这个插件。 IdeaVim是用于基于IntelliJ平台的IDE的Vim仿真插件。IdeaVim支持许多Vim功能,包括普通/插入/可视模式,动作键,删除/更改,标记,寄存器,一些Ex命令,Vim regexp,通过〜/ .ideavimrc配置,宏,窗口命令等。另外还可以自定义ideavim的快捷键,定制专属的快捷键。
如果没学过VIM的,可以学习一下之前的文章 编辑神器VIM命令总结(一) 编辑神器VIM命令总结(二) 编辑神器VIM命令总结(三)
安装IDEAVIM File -> Setting -> Plugins -> Marketplace ,然后搜ideavim,安装然后重启可。
要注意很多vim的命令在ideavim中用不了,但是对于我们开发人员来说已经足够了。
基本命令 进入编辑区,进入的是命令模式。在命令l模式中,就能愉快的使用H/J/K/L键了。 点i或a,可进入输入模式。
模式互换 命令模式 -> 编辑模式 : i 或 a键 编辑模式 -> 命令模式 : Esc
话不多说,上干货 自定义ideavim配置 若需要自定义ideavim的快捷键,只需要创建一个.ideavim文件,并放在C盘的Users的用户目录下,然后重启idea,文件就可以生效了。
看着是不是一脸蒙蔽?没关系,下面让我来讲解一下
.ideavim配置文件讲解 在.ideavim中,注释写法为:
" xxx 1 第一条命令let mapleader=’,'就是vim命令调用模式要用到的命令,具体怎么用,下面将会进行讲解。
接下来的set开头的命令,都是vim配置命令,比如搜索时开启高亮,显示行数等等。 然后就是命令nnoremap。 首先说一下命令map的意思:比如ctrl + d在命令模式是向下滚屏,在编辑模式是减少缩进(可能不准确),那么如果使用命令map来覆盖ctrl + d命令,则会将命令模式和编辑模式下的命令都给覆盖掉。而nnoremap命令则只会覆盖命令模式下的命令。这里再讲一下命令inoremap,这个命令表示的是在编辑模式下覆盖命令,不过这个命令一般用得少。
自定义快捷键 比如命令: nohisearch,是指消除搜索之后的高亮显示。如果定义自定义快捷键,则这样定义: nnoremap sc :nohisearch 这里的就是开头定义的,。命令的前半部分nnoremap sc代表的就是在命令模式下,使用命令,sc代替命令: nohisearch(是规定,具体啥意思我也没查到)。所以在IDEA的编辑区在命令模式下使用命令,sc,就可以实现消除高亮的搜索结果,效果如图:
下面再来讲解ideavim的action命令。先来在idea中输入命令```:actionlist``,然后回车即可看到非常多的action命令,如图所示:
https://www.ximalaya.com/yinyue/25398376/ https://www.ximalaya.com/yinyue/25398381/ https://www.ximalaya.com/yinyue/25398389/ https://www.ximalaya.com/yinyue/25398261/ https://www.ximalaya.com/yinyue/25398269/ https://www.ximalaya.com/yinyue/25398287/ https://www.ximalaya.com/yinyue/25398279/ https://www.ximalaya.com/yinyue/25398302/ https://www.ximalaya.com/yinyue/25398308/ https://www.ximalaya.com/yinyue/25398313/ https://www.ximalaya.com/yinyue/25398318/ https://www.ximalaya.com/yinyue/25398323/ https://www.ximalaya.com/yinyue/25398329/ https://www.ximalaya.com/yinyue/25398230/
可以看到有非常多的action命令。很多命令都非常实用,比如
Go to Class //打开查找类的搜索框 Go to File //打开查找File的搜索框 1 2 实用这些action命令,只需要输入:
: action GotoClass 1 聪明的读者们,应该想到了实用快捷键来代替这些action快捷键,只需要在.ideavim中自定义即可了。
下面粘贴一部分作者积累的自定义快捷键:
" ================================================== " 查询所有的action命令,可以使用命令: :actionlist " ================================================== " 将当前行给注释掉 nnoremap ;; :action CommentByLineComment
" 指定InspectCode nnoremap ic :action InspectCode
nnoremap oi :action OptimizeImports
作者:CoderBruis 来源: 原文:https://blog.csdn.net/CoderBruis/article/details/94735816 版权声明:本文为博主原创文章,转载请附上博文链接!