Skip to main content

IDEA Vim

ref Configuring conflicting keys via .ideavimrc

~/.ideavimrc
" Use ctrl-c as an ide shortcut in normal and visual modes
sethandler <C-C> n-v:ide i:vim

" ctrl-v 在 n(ormal) 和 v(isual) 模式下作为 Vim 命令使用, 在 i(nsert) 模式下作为 IDEA 命令使用
sethandler <C-V> n-v:vim i:ide

sethandler

sethandler 命令格式为:

sethandler <shortcut> mode-list:handler mode-list:handler ...

多个 mode-list 用连字符 - 分割, 支持一下 mode-list:

  • n - normal mode
  • i - insert mode
  • x - visual mode
  • v - visual and select modes
  • a - all modes

handler 支持一下值:

  • ide - 使用 IDE 处理
  • vim - 使用 Vim 处理

mode-list:handler 示例如下:

  • n:ide - Normal模式用使用IDE处理(use IDE handler in normal mode).
  • i-v:vim - Normal, visual, select 模式下使用Vim处理(use Vim handler in normal, visual, and select modes)
  • a:ide - 任何模式下都使用IDE处理(use IDE handler in all modes).

完整配置

~/.ideavimrc
sethandler <C-V> a:ide
sethandler <C-B> a:ide
sethandler <C-F> a:ide
sethandler <C-2> a:ide
sethandler <C-S-2> a:ide
sethandler <C-6> a:ide
sethandler <C-S-6> a:ide
sethandler <C-A> a:ide
sethandler <C-D> a:ide
sethandler <C-E> a:ide
sethandler <C-G> a:ide
sethandler <C-H> a:ide
sethandler <C-I> a:ide
sethandler <C-J> a:ide
sethandler <C-K> a:ide
sethandler <C-L> a:ide
sethandler <C-M> a:ide
sethandler <C-N> a:ide
sethandler <C-O> a:ide
sethandler <C-P> a:ide
sethandler <C-Q> a:ide
sethandler <C-R> a:ide
sethandler <C-S> a:ide
sethandler <C-T> a:ide
sethandler <C-U> a:ide
sethandler <C-W> a:ide
sethandler <C-X> a:ide
sethandler <C-Y> a:ide
sethandler <C-[> a:ide
sethandler <C-\> a:ide
sethandler <C-]> a:ide

" ctrl-c 在 n(ormal) 和 v(isual) 模式下作为 Vim 命令使用, 在 i(nsert) 模式下作为 IDEA 命令使用
sethandler <C-C> n-v:ide i:vim