Я пытаюсь отобразить мой Ctrl и знак плюс вместе. Это то, что я пытаюсь в моем vimrc:
nnoremap <C-=> : echo "Hello" <CR>
Однако, похоже, что отображение не запускается. Любые предложения о том, что я могу делать не так? Я использую Macvim.
Я пытаюсь отобразить мой Ctrl и знак плюс вместе. Это то, что я пытаюсь в моем vimrc:
nnoremap <C-=> : echo "Hello" <CR>
Однако, похоже, что отображение не запускается. Любые предложения о том, что я могу делать не так? Я использую Macvim.
Ответы:
К сожалению, нет надежного способа картирования Ctrl-=.
Из-за того, как ctrl+key
аккорды взаимодействуют с терминалом и представлены внутри, единственные отображения Ctrl, которые Vim гарантированно сможет обнаружить, определены в стандарте ASCII. Вот полный список таких ctrl+key
комбинаций, и каждый байт представляет.
Ctrl-@ 0x00 NUL
Ctrl-A to Ctrl-Z 0x01 to 0x1A
Ctrl-a to Ctrl-z 0x01 to 0x1A
Ctrl-[ 0x1B ESC
Ctrl-\ 0x1C
Ctrl-] 0x1D
Ctrl-^ 0x1E
Ctrl-_ 0x1F
Ctrl-? 0x7F DEL
Однако обратите внимание, что большинство из них уже имеют функцию в Vim, а некоторые по существу идентичны / неотличимы от других нажатий клавиш. Например, CTRL-M
имеет тот же код ключа Enter
, что и при сопоставлении одного из них вы также неизбежно сопоставляете другой.
Источник: Vim-FAQ
Возможно, вы сможете обойти указанные выше ограничения, настроив свой терминал на отправку определенной последовательности байтов для вашего отображения, как в этом потоке переполнения стека , но это определенно будет проблемой. Лично я бы предпочел просто выбрать другое отображение.
В конечном итоге это может быть исправлено, но это маловероятно, поскольку Vim полагается на терминал, в котором он работает. Однако есть хорошая возможность, что это будет работать в Neovim. Я не знаю, работает ли это сейчас или нет.