Escape to IntelliJ IDEA ярлыки от IdeaVim

Я привык как к vim, так и к горячим клавишам IntelliJ по умолчанию. Я бы хотел не менять ни одного из них - я бы предпочел использовать конфликтующие привязки IntelliJ, например CTRL-P, после какого-то ключа эвакуации.

Конфликтный шар и мои исследования не были слишком полезными. Единственное, что я нашел, это то, что я могу отключить плагин vim с помощью горячей клавиши, а затем вернуться после того, как я закончил, но я должен помнить, чтобы каждый раз его переводить.

Есть ли решение для моей проблемы?

Ответ 1

Я просто выключаю VIM-плагин, выполняю нажатие клавиши, а затем снова включаю его. У меня есть ^Z, связанный с командой VIM Emulator для этой цели, и это достаточно для меня.

Но если у вас есть ограниченный набор команд IntelliJ, которые вы хотите использовать с префиксным ключом, вы можете выбрать префиксный ключ, убедиться, что он не связан в IntelliJ, а затем использовать его в ~/.ideavimrc вместе с оригинальной привязкой к вам wan, чтобы вызвать.

Например, ^D в VIM "Окно прокрутки вниз" и в IntelliJ (с раскладкой "Mac OS X 10. 5+") является "Debug". Если вы хотите использовать оба варианта:

  • выберите префиксный ключ, который не связан в IntelliJ, скажем ^Z
  • в Other Settings => Vim Emulation, найдите ярлык ^D и установите обработчик на Vim.
  • В вашем ~/.ideavimrc добавьте следующее отображение:

    nnoremap <CZ><CD> :action Debug<CR>

Теперь вы можете ввести ^D, чтобы действие Vim прокручивалось вниз, или ^Z ^D для отладки действия IntelliJ без фактического отключения IdeaVIM. Разумеется, вам нужно добавить сопоставление для ~/.ideavimrc для каждой команды IntelliJ, которую вы хотите выполнить таким образом, но если у вас ограниченное число, вы можете установить их один раз и сделать с ним.

Ответ 2

Я сделал .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>

Ответ 3

Ключевая карта без каких-либо привязок здесь: для использования, поэтому можно начинать с чистого листа, настраивая.ideavimrc

Ответ 4

Добавив @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>

Ответ 5

Простым вариантом также может быть использование режима вставки для сочетаний клавиш IntelliJ. Я только начинаю с ideavim, и это, кажется, делает это для меня, пока..