逃离IdeaVim的IntelliJ IDEA快捷方式

Thi*_*ker 22 vim intellij-idea ideavim

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

冲突气球和我的研究并没有太大帮助.我发现的唯一的事情就是我可以用热键关闭vim插件,然后在我完成之后重新开启,但我必须记住每次都把它变成一个.

我的问题有什么解决方案吗?

mel*_*ovv 43

我制作了包含所有冲突映射的绑定的.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>
Run Code Online (Sandbox Code Playgroud)

  • 冷却<3冷却<3冷却<3 (3认同)
  • 我更新了答案。您可以使用 :actionlist 命令查看所有 Intellij 操作以自定义这些映射。 (2认同)
  • @Ted 领导键是你定义的任何东西,如果你仔细阅读,有一行说 `let mapleader = " "` 使 &lt;space&gt; 成为领导键,例如 `&lt;space&gt;+b ` 转换为 `:goto 声明` (2认同)
  • 要让IdeaVim读取对.ideavimrc的更改,请使用`:source〜/ .ideavimrc`。 (2认同)

jby*_*ler 17

我只关闭VIM插件,执行击键,然后重新打开.^Z为此我已经绑定了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>

现在,您可以键入^DVim操作向下滚动,或者^Z^D为IntelliJ操作调试,而不实际禁用IdeaVIM.你当然必须为你想要以这种方式执行的每个IntelliJ命令添加〜/ .ideavimrc的映射,但是如果你有一个有限的数字,你可以设置它们一次并完成它.

  • 您如何用^ Z配置vimemulator?我做不到。 (2认同)
  • @Ryan,我刚刚编辑了答案以添加说明。 (2认同)

Joh*_*ick 5

添加到@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>
Run Code Online (Sandbox Code Playgroud)