31

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

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

我的问题有什么解决办法吗?

4

5 回答 5

66

我制作了.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>
于 2015-11-29T20:56:58.853 回答
27

我只是关闭 VIM 插件,执行击键,然后重新打开它。^Z为此,我已绑定到 VIM Emulator 命令,这对我来说已经足够了。要进行设置,请转到 Preferences... => Keymap,搜索“vim emulator”,然后右键单击命令名称以分配快捷方式。

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

例如,^D在 VIM 中是“向下滚动窗口”,而在 IntelliJ(带有键盘映射“Mac OS X 10.5+”)中是“调试”。如果您希望能够同时使用两者:

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

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

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

于 2015-08-13T17:03:00.197 回答
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>
于 2019-01-04T19:27:46.597 回答
2

此处没有任何绑定的键盘映射:要使用,因此可以从配置.ideavimrc的全新开始

于 2017-09-28T22:44:08.627 回答
0

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

于 2018-11-29T11:27:31.353 回答