从 IdeaVim 转义到 IntelliJ IDEA 快捷方式

Escape to IntelliJ IDEA shortcuts from IdeaVim

我习惯了 vim 和 IntelliJ 默认热键。我不想更改它们中的任何一个 - 我宁愿能够在某种转义键之后使用冲突的 IntelliJ 绑定,例如 CTRL-P。

冲突气球和我的 research 没有太大帮助。我唯一发现的是我可以用热键关闭 vim 插件,然后在完成后重新打开,但我必须记住每次都打开它。

我的问题有解决办法吗?

我只是关闭 VIM 插件,执行击键,然后重新打开。为此,我将 ^Z 绑定到 VIM Emulator 命令,这对我来说已经足够了。要进行设置,请转到首选项...=> 键盘映射,搜索 "vim emulator",然后右键单击命令名称以指定快捷方式。

但是如果你有一组有限的 IntelliJ 命令你想使用前缀键,你可以选择前缀键,确保它在 IntelliJ 中未绑定,然后在你的 ~/.ideavimrc以及您要调用的原始绑定。

例如,^D 在 VIM 中是 "Scroll window Downwards" 而在 IntelliJ(带有键盘映射 "Mac OS X 10.5+")中是 "Debug" .如果您想同时使用两者:

  • 选择一个未在 IntelliJ 中绑定的前缀键,比如 ^Z
  • 在其他设置 => Vim 仿真中,找到快捷方式 ^D 并将处理程序设置为 Vim.
  • 在您的 ~/.ideavimrc 中,添加以下映射:

    nnoremap <C-Z><C-D> :action Debug<CR>

现在您可以键入 ^D 进行 Vim 向下滚动操作,或 ^Z ^D 用于 IntelliJ 操作调试,实际上没有禁用 IdeaVIM。您当然必须为要以这种方式执行的每个 IntelliJ 命令添加一个映射到您的 ~/.ideavimrc,但是如果您的数量有限,您可以设置一次并完成它。

我制作了 .ideavimrc,其中包含所有冲突映射的绑定。也许对某人有用。

imap jj <Esc>

let mapleader = " "
map <leader>a :action $SelectAll<CR>
map <leader>b :action GotoDeclaration<CR>
map <leader>c :action $Copy<CR>
map <leader>d :action EditorDuplicate<CR>
map <leader>e :action RecentFiles<CR>
map <leader>f :action Find<CR>
map <leader>g :action GotoLine<CR>
map <leader>h :action TypeHierarchy<CR>
map <leader>i :action ImplementMethods<CR>
map <leader>m :action EditorScrollToCenter<CR>
map <leader>n :action FileChooser.NewFolder<CR>
map <leader>o :action OverrideMethods<CR>
map <leader>p :action ParameterInfo<CR>
map <leader>q :action QuickJavaDoc<CR>
map <leader>r :action Replace<CR>
map <leader>s :action SaveAll<CR>
map <leader>t :action Vcs.UpdateProject<CR>
map <leader>u :action GotoSuperMethod<CR>
map <leader>v :action $Paste<CR>
map <leader>w :action EditorSelectWord<CR>
map <leader>x :action $Cut<CR>
map <leader>y :action EditorDeleteLine<CR>
map <leader>[ :action EditorCodeBlockStart<CR>
map <leader>] :action EditorCodeBlockEnd<CR>

A keymap 这里没有任何绑定:要使用,因此可以从头开始配置 .ideavimrc

一个简单的选项也可能是对 IntelliJ 键绑定使用插入模式。我刚开始使用 ideavim,这似乎对我有用,现在..

除了@melihovv 的出色回答外,我还向 ~/.ideavimrc 添加了 运行、调试和选择配置操作。

map <leader>dd :action Debug<CR>
map <leader>cd :action ChooseDebugConfiguration<CR>
map <leader>rr :action Run<CR>
map <leader>cr :action ChooseRunConfiguration<CR>