如何在idea中使用vim.
翻遍了很多文章和官方文档,保留了自己感兴趣的部分,写错的地方或有遗漏的可以留言,我会及时修正。
ps:文中不会涉及一些操作的步骤
IDEA安装插件(以下插件都会用到,具体干啥的可以自己搜一下)
ideaVim
ideaVim-EasyMotion
ideaVimExtension
AceJump
Which-Key
VIM 插件
下面列出我常用的一些插件(安装需要操作vimrc文件)
argtextobj 插件 (参数操作)
安装
set argtextobj
使用
ps: 这个插件对 参数是map带有泛型支持不太好
提供了 一个text 对象 -- a
可以使用 动作(v/d等) + 介词(i/a) + a
例子:
指令:via
结果([]为选中区域):public void get([int a], int b);
vim-surround 插件
安装
set surround
支持命令
ys cs ds S
使用
Old Text Command Text After command execute
“Hello *world!” ds” Hello world!
[123 + 4*56]/2 cs]) (123+456)/2
“Look ma, I’m *HTML!” cs"<p> <q>Look ma, I'm HTML!</p>
if *x>3 ysW( if ( x>3 )
my $str = *www; vllS’/viwS' my $str = 'www';
说明
- ds + “ { ' t ( 等 删除光标附近的环绕字符
- cs + old new 修改光标附近的环绕字符
- ys + 字符对象(w b e t f jk等)+ 环绕字符 从光标位置 到指定的字符对象结尾或开头增加环绕字符
- v 选中字符 + S + 环绕字符 对选择文本增加环绕字符
multiple-cursors (多行操作) -- 这个插件非常好用
安装
set multiple-cursors
使用
alt + n : 选中光标所在单词(如果当前是v 模式下,会按照已选中的选中下一个)
alt + x : 跳过下一个
alt + p : 返回上一次
ps: 快捷键默认是这个,由于我觉得很好用就没有更换,如果要换的话可以找下github的说明。 terryma/vim-multiple-cursors: True Sublime Text style multiple selections for Vim (github.com)
commentary (注释插件)
安装
set commentary
使用
gcc : 注释此行,如果当前行已经注释则取消
v模式 gc: 注释选中的行
NERDTree (文件资源管理器操作插件)
安装
Plug 'preservim/nerdtree'
使用
o 已有窗口打开文件
go 已有窗口打开文件,但是不跳到此窗口(光标不在此窗口)
i 垂直分隔位置打开一个窗口
s 水平分隔位置打开一个窗口
x 跳转到父节点位置,并关闭节点展开
p 跳转到父节点位置
P 跳转到根节点位置
K 跳转到当前目录下第一个节点
J 跳转到当前目录下最后一个节点
m 打开当前节点的设置(新增,删除等操作)
q 关闭文件管理器
A 全屏展开目录
quick-scope (帮你提供f 快捷键快速跳转的推荐字符)
unblevable/quick-scope: Lightning fast left-right movement in Vim (github.com)
安装
set quickscope
2. idea 安装 idea-vim-quickscope
配置(下面这段是从github文档里找到)
" Trigger a highlight in the appropriate direction when pressing these keys:
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
" Trigger a highlight only when pressing f and F.
let g:qs_highlight_on_keys = ['f', 'F']