Есть ли способ получить представление IdeaVIM для сопоставлений из моего .vimrc файла?
Недавно я попал в vim (снова), и теперь у меня есть тонна настроек в моем файле .vimrc
. Я понимаю, что не все в этом будет иметь смысл в контексте плагина IDEA, но мне бы очень понравилось, если бы такие вещи, как переназначение jj
на Esc
, были подобраны и соблюдены. Есть ли способ сделать это? Без необходимости вручную настраивать все это в текстовой таблице IDEA, то есть.
Спасибо.
Ответы
Ответ 1
Обновление: да! См. Ответ ниже.
Короткий ответ: нет.
Я тоже пытался сделать это, потому что у меня довольно сложный .vimrc
, с которым я привык на протяжении многих лет.
Во всяком случае, существует обходное решение (вроде). Настройки IdeaVim хранятся в файле с именем vim.xml
в папке .IntelliJIdea10/config/keymaps
внутри вашей домашней папки (C:\Users\<user_name>
в Windows). Вы можете редактировать XML, чтобы добавить нужные материалы. Например, я добавил следующие строки, чтобы сохранить файл, нажав F2
вместо ввода :w!
:
<action id="SaveAll">
<keyboard-shortcut first-keystroke="F2"/>
</action>
Однако я не вижу, как мы можем добавлять такие функции, как функции или настройки vim (это то, что я обычно использовал для .vimrc
для).
P.S. Это может объяснить, почему .vimrc не используется (внимание мое):
Для любознательных, плагин является написано без ссылки на Исходный код VIM (за исключением обработка регулярных выражений). я в основном используя отличный VIM документацию и сам VIM как ссылка для проверки правильности поведения.
Источник: http://ideavim.sourceforge.net/
Ответ 2
Обновленный ответ: IdeaVim версии 0.35 (выпущен 2014-05-15) читает настройки и привязки клавиш от ~/.ideavimrc
. Вы можете поместить source ~/.vimrc
в этот файл, если вы хотите включить сопоставления из ~/.vimrc
.
0.33 и 0.34 читайте ~/.vimrc
напрямую.
0,33 (выпущен 2014-04-28) была первой версией для реализации VIM-288, включая такие вещи, как сопоставление j j - ESC, Он отлично работает, и там есть новый раздел Vim Emulation в настройках IDEA, в котором перечислены все конфликты между сопоставлениями ~/.vimrc
и сопоставлениями Intellij, и позволяет разрешать конфликты, назначая ключи либо IDEA, либо IdeaVim. Вот объявление выпуска в твиттере.
(Примечание: я не автор, просто довольный пользователь.)
Ответ 3
Похоже на проблему IdeaVIM # VIM-288 (изменить, обновить: см. ответ jbyler, исправленный VIM-288) решит вашу проблему, когда это исправится. Я тоже искал способ выхода в режим ввода "jk" вместо использования клавиши Escape. Я не эксперт в плагинах IntelliJ, но мне удалось изменить исходный код IdeaVIM, чтобы ярлык "jk" был жестко закодирован. Все, что я должен был сделать, это повторно развернуть плагин и использовать это вместо официальной версии. Вот как я это сделал:
-
Захватите исходный код IdeaVIM.
https://github.com/JetBrains/ideavim
-
Вы можете следовать инструкциям в разделе "Разработка" на этой странице, чтобы настроить среду разработки для плагина.
-
Теперь, когда ваш проект IdeaVIM настроен, откройте этот файл:
com.maddyhome.idea.vim.key.RegisterActions.java
-
Кажется, что у этого файла есть все команды Visual/Insert/Normal mode и соответствующие им привязки клавиш. Для моего примера изменения привязки клавиш "exit insert mode" найдите "VimInsertExitMode". Вам нужно будет добавить строку в этот блок кода для нового ярлыка.
-
Вот как выглядел раздел кода после того, как я его отредактировал:
parser.registerAction(KeyParser.MAPPING_INSERT, "VimInsertExitMode", Command.Type.INSERT, new Shortcut[]{
new Shortcut(KeyStroke.getKeyStroke('[', KeyEvent.CTRL_MASK)),
new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK)),
new Shortcut(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)),
new Shortcut("jk"),
new Shortcut(new KeyStroke[]{KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SLASH, KeyEvent.CTRL_MASK),
KeyStroke.getKeyStroke(KeyEvent.VK_N, KeyEvent.CTRL_MASK)})
});
-
Теперь разверните проект (сделайте .jar) и добавьте его в свою папку плагинов; Я выполнил следующие инструкции для справки:
http://confluence.jetbrains.com/display/IDEADEV/Getting+Started+with+Plugin+Development#GettingStartedwithPluginDevelopment-anchor5
-
Вам может потребоваться сохранить файл Vim.xml из папки с ключевыми файлами, я не уверен. Я удалил мой, а затем был перезаписан, когда я перезапустил IntelliJ.
-
Дайте ему вихрь! Должна иметь возможность использовать "jk" в качестве ярлыка режима выхода в прямом режиме!
Ответ 4
Знаете, у меня был некоторый успех с .vimrc в моей домашней папке в Windows, поэтому обычно C:\Users\yourLogin. Казалось бы, по дизайну. Олег упоминает, что IdeaVIM использует здесь подмножество команд VIm.
http://youtrack.jetbrains.com/issue/VIM-134#tab=Comments
Похоже, вам нужно войти в систему, чтобы увидеть комментарии к системе youtrack.
Олег Шпынов 15 Авг. 2011 18:12
Плагин IdeaVIM загружает некоторые данные конфигурации из файла .vimrc, однако поддержка плагинов vim не является и не будет доступным, поскольку требуется переписать всю среду выполнения VIM в пределах Плагин IdeaVim.
Обратите внимание, что вы должны называть файл .vimrc, а не _vimrc, если вы находитесь в Windows, где вы можете ожидать последнего.
Работает с set ignorecase
как минимум!
Ответ 5
В соответствии с описанием в репозитории плагина (https://github.com/JetBrains/ideavim), вы можете добиться этого, создав файл " ~/.ideavimrc" с его содержимым:
source ~/.vimrc
Ответ 6
Теперь IdeaVim (по крайней мере, начиная с 0,35) поддерживает ограниченное количество команд набора, а также карту и ее варианты. Чтобы они были получены автоматически, введите свои настройки в ~/.ideavimrc.
Ответ 7
Чтобы заставить его работать с окнами 7, создайте .ideavimrc в C:\Users [имя пользователя]
Работал для меня.
Ответ 8
Я только что понял, как это сделать вчера. Я смог символически связать мой .vimrc с моими настройками ideavim, выполнив следующую команду:
ln -s $HOME/.vimrc $HOME/.ideavim