20

Исходя из моего другого недавнего вопроса:Как мне сопоставить <cmd> - <shift> -f для запуска плагина Ack в Vim?

Можно ли вообще использовать клавишу <cmd> в Vim?

Если Vim не распознает ключ, возможно ли переназначить ключ вне Vim (как-нибудь?) что-то еще и сопоставить этот ключ в Vim?

Я использую iTerm 2 на Lion с Vim 7.3.

Спасибо!

4 ответа4

11

<D-> работает только в MacVim.

Быстрый Google вернет кучу хаков и сторонних решений. Все известные мне решения работают либо для всей системы, либо для конкретного приложения: если вы переназначаете Cmd только в iTerm2, как вы собираетесь открыть новое окно или новую вкладку? С ... с ... мышей?

Я не могу себе представить вескую причину переназначения клавиши Cmd на что-либо на Mac. Это было бы безумно.

Vim не TextMate или любой другой редактор, который вы использовали раньше. Нет способа передать все ваши старые привычки без проблем, в упор.

Вместо того, чтобы тратить свое время на попытки превратить Vim и ваш терминал во что-то, чем они не являются и не могут быть, вы должны научиться мудро использовать и настраивать Vim. Все ваши комбинации Cmd+Shift+Ctrl+Alt никуда вас не приведут. Особенно в терминале, где Alt часто проблематичен, а Cmd непригоден для использования.

Рассмотрите возможность использования <leader> (:help leader):

  • это портативно на любой платформе
  • он менее подвержен конфликтам с вашей ОС или эмулятором терминала
  • это открывает много легко запоминающихся возможностей
4

Для простых команд есть решение путем отправки соответствующего шестнадцатеричного кода на терминал. Например, я хотел сохранить в vim, нажав cmd-s . Я сопоставил cmd-s в iterm2 для отправки шестнадцатеричного кода 0x13 который является кодом для ctrl-s , затем я сопоставил ctrl-s с :wq в vim.

4

Я обнаружил, что у iterm2 есть опция в настройках клавиатуры, чтобы делать подобные вещи. Для примера ниже я сопоставил команду-enter следующим образом:wq

3

Решение 2016 года состоит в том, чтобы использовать программу с открытым исходным кодом Karabiner, которая позволяет вам переназначить модификатор и другие ключи с очень тонкой детализацией, например

  • Переназначить только левую клавишу ⌘ Cmd или Option .
  • Переназначить ключ только для определенных приложений, например, только внутри Terminal, Emacs или виртуальной машины.

Например, вот как переназначить левую клавишу ⌘ Cmd, чтобы она действовала как Ctrl только внутри Терминала (и оставьте правую без изменений, чтобы вы могли использовать, например, ⌘ Cmd + Tab для переключения между приложениями):

карабин-скриншот

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .