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

183

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

Пол Уикс
источник

Ответы:

238

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

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

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

mattr-
источник
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).

Ves
источник
13

Проще говоря, просто запустите :map варианты без аргументов.

:map
:imap
:vmap
Майкл Берковски
источник
13

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

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

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

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

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

albfan
источник
4

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

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

Фернандо Родригес
источник