IntelliJ IDEA 配合vim使用

概述

前文IntelliJ IDEA快捷键和使用技巧,主要介绍idea的快捷键,提过vim,本文介绍通过安装插件实现我们vim编辑。本文基于mac环境。

ideavim

ideavim是idea的vim模拟插件,它虽然没有vim的全部功能,却可以在vim命令下调用idea的action。

安装完成后重启idea,然后到 “Tools | Vim Emulator”,点击启用。在编辑窗口即可随意切换vim模式。如果esc按键无用,可以用command + [替代。

配置

可以在home目录添加vimrc配置:

~/.ideavimrc

基础配置

set hlsearch                    " highlight searches
set incsearch                   " do incremental searching, search as you type
set ignorecase                  " ignore case when searching
set smartcase                   " no ignorecase if Uppercase char present
set clipboard=unnamedplus  " 使用系统粘贴板(vim用y粘贴的内容也可以通过command + c 粘贴)

除了vim基础配置,还支持映射idea的action。action列表可以通过: actionlist查看,也有人整理了action列表

:map \r :action ReformatCode<CR>

在vim的nomal模式下,按键r,即可格式化代码

输入法切换

进入vim模式下,自动切换为英文输入法,进入编辑模式,又切换原来的输入法。需要其他插件配合,此处是idea插件:ideaVimExtension,安装插件后,在.ideavimrc添加如下配置:

set keep-english-in-normal-and-restore-in-insert

AceJump集成

AceJump插件可以完成chrome浏览器中vimium插件类似的功能,给需要查找的字符条件键盘映射,可以快速把光标定位到想要的地方。对应vim为字符搜索,在nomal模式下通过f进行搜索,但aceJump更方便强大,所以把vim的f映射到aceJump。

安装插件AceJump后,配置.ideavimrc如下:

" Press `f` to activate AceJump
map f :action AceAction<CR>
" Press `F` to activate Target Mode
map F :action AceTargetAction<CR>
" Press `g` to activate Line Mode
map g :action AceLineAction<CR>

效果:

normal模式下按f,输入定位光标的字母,然后输入高亮想要跳转位置的高亮字母。

其他

可以结合我的其他两篇文章:

CONTENTS