Я не уверен, что это "возможно" больше. Пожалуйста, прочтите обновление ниже.
Да, вы можете даже в терминале vim, но нет реального ответа на все вопросы . Вы в основном должны выполнить два шага:
Убедитесь, что существует нотация <M-d>
, и отобразите точно, что вводит ваш терминал (^[
является escape-символом):
$ cat
^[d
$
" in your .vimrc
execute "set <M-d>=\ed"
" you have to use double quotes!
Сопоставьте что-нибудь с вновь созданной комбинацией:
noremap <M-d> :echo "m-d works!"<cr>
Понимая, как это работает, вы можете расширить этот «трюк» на другие «странные» комбинации, например, я использую термит, а vim не распознает <S-F1>
, используя cat, я получаю ^[[1;2P
. Затем в моем vimrc я делаю: execute "set <S-F1>=\e[1;2P"
, и затем я могу сопоставить его с чем угодно.
Примечание: Не знаю почему, но для некоторых людей использование \<Esc>
работает вместо \e
.
Обновление (февраль 2016 г.)
В зависимости от terminfo вашего терминала, может быть, вы могли бы ... в большинстве терминалов, например, «alt + h» отображается на ^[h
, что означает «escape + h». Так что это может перезаписать ключи. Я только что попробовал (еще раз), и это, кажется, работает, но я считаю, что это очень ошибочная и подверженная ошибкам реализация.
Тем не менее, для достаточно смелых, вот экспериментальный плагин: