Есть ли способ просмотреть в настоящее время сопоставленные ключи в Vim?


183

По сути, я хотел бы просмотреть все карты ключей, созданные в текущем буфере всеми плагинами, vimrc и т. Д. В текущем буфере. Есть какой-либо способ сделать это?

Ответы:


238

Вы можете сделать это с помощью :mapкоманды. Есть и другие варианты.

  • :nmap для отображения в нормальном режиме
  • :vmap для отображения в визуальном режиме
  • :imap для отображения режима вставки

Приведенный выше список не является полным. Набрав :help mapв Vim, вы получите больше информации.


10
Просто для ясности, я полагаю :map, что , как и в первоначальном вопросе, просто показаны сопоставления, сделанные с помощью плагинов, vimrc и т. Д. Если вы хотите увидеть привязки клавиш по умолчанию в vim, используйте:index
Von

28
@Вон, ты имеешь в виду :help index.
Lqueryvg

2
они дают только пользовательские сопоставления, а не встроенные (по умолчанию) привязки
Тайлер Дерден

1
Можно ли записать их в файл, чтобы просмотреть их позже?
Антон Данейко

@AntonDaneyko Вы можете использовать github.com/AndrewRadev/bufferize.vim для этой цели.
Радлан

86
:redir! > vim_keys.txt
:silent verbose map
:redir END

Это выводит ярлыки, где они были определены, в текстовый файл.


1
Я считаю, что вы хотели использовать :redirкоманду, а не :remapкоманду.
Аарон Хейс

1
Спасибо Спасибо спасибо!!! Наконец обнаружил, что MacVim переназначает мою команду <A-Up>. Исправлено добавлением let macvim_skip_cmd_opt_movement = 1
RichS

54

В дополнение к ответам о :mapбез аргументов: не пропустите его подробную форму ( :verbose map), которая показывает, где было определено отображение (ы) (см. :help map-verbose).



13

:mapи его друзья являются ключом, :verboseдобавляют информацию и :redirпозволяют уточнение после поиска.

Они представляют собой идеальное сочетание, чтобы показать, какая команда привязана к какому ярлыку и наоборот, но если вы хотите искать некоторые ключи и избегать временных файлов всякий раз, когда вам нужно искать сопоставления, взгляните на scripttease и :Verboseкоманду.

Это обертка, :verboseчтобы показать результат в окне предварительного просмотра.

таким образом, вы можете искать что угодно внутри результатов, не используя временные файлы

введите :Verbose mapи используйте / ?как обычно.


4

Другой способ - сохранить сеанс в файл, а затем отредактировать этот файл, так как он содержит все сопоставления и настройки.

:mks[ession] [file] - Написать сценарий Vim, который восстанавливает текущий сеанс редактирования.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.