Как найти, что делает привязка ключей vim по умолчанию?

#vim #neovim

#vim #neovim

Вопрос:

По-видимому <c-space> , я делаю что-то по умолчанию в vim, но я не могу найти способ проверить, что он делает.

 :imap <c-space>
> No mapping found

:h <c-space>
> Sorry, no help for <c-space>
 

Комментарии:

1. Рассмотрите возможность использования Vi и Vim Stack Exchange для вопросов по Vim.

Ответ №1:

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

Один из способов попытаться выяснить, какой код ключа отображается Vim, — это перейти в режим вставки, а затем нажать Ctrl V, за которым следует ваш конкретный ключ. (Смотрите :help i_CTRL-V , который скажет вам, что Vim вставит следующий символ буквально.)

В моем случае ввод Ctrl V, за которым следует Ctrl Space, в режиме вставки показывает мне ^@ , что символизирует последовательность Ctrl @ , которая показывает мне, как Vim видит эту последовательность клавиш.

(Я считаю, что это в основном универсально, и Ctrl Space всегда будет генерировать Ctrl @ везде, но, как я уже упоминал, существуют различия в платформах, поэтому я не могу гарантировать, что это работает так везде, но вы должны иметь возможность использовать тот же Ctrl V трюк, чтобы выяснить, одинаковый он или нет в вашем случае.)

Следуя этому выводу, вы можете посмотреть :help i_CTRL-@ , чтобы увидеть, что последовательность Ctrl @ (которая должна быть эквивалентна Ctrl Space) «вставит ранее вставленный текст и остановит вставку».

Комментарии:

1. Кроме того, встроенные команды Vim и сопоставления пользовательских областей обрабатываются двумя отдельными механизмами, поэтому :map or :imap не может использоваться для определения того, что делает данная встроенная команда в любом случае. Для этого нужно сделать то, что вы предложили : :help <cmd> .