Подтвердить что ты не робот

Обнаруживать, если ключ привязан к чему-то в vim

Я хотел бы знать, есть ли способ выяснить, делает ли ключ что-то в vim. Я знаю, что я могу использовать :map для просмотра пользовательских сопоставлений, но есть ли что-то для встроенного материала?

Например, у меня всегда было CTRL - W, связанное с закрытием вкладки, потому что я думал, что он не использовался. Через полгода я узнал, что есть некоторые последовательности, которые его используют, например CTRL - W CTRL - S, чтобы разбить окно, и это был кошмар, чтобы переучиваться.

4b9b3361

Ответ 1

Если вы проверите предложенный ответ Рэнди Морриса, вы обнаружите, что

:help index 

предоставит вам список, который вы хотите.

Ответ 2

Чтобы проверить отображение по умолчанию:

:help index

Для другого сопоставления, которое выполняется либо пользователями, либо плагином:

:map
:map!

Из http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial (Part_1):

Первая команда отображает карты, которые работают в нормальных, визуальных и выбор и режим ожидания оператора. Вторая команда отображает карты которые работают в режиме ввода и командной строки.

Как правило, вывод вышеуказанных команд будет охватывать несколько страниц. Вы можете использовать следующий набор команд для перенаправления вывода на файл vim_maps.txt:

:redir! > vim_maps.txt
:map
:map!
:redir END

Ответ 3

Не полный ответ, но вы можете проверить :help map-which-keys список ключей, которые vim рекомендует использовать на своих пользовательских картах.

В этом разделе справки есть рекомендации, как определить, отображается ли конкретный ключ для действия.

Ответ 4

Использование :map! и :map для установленных вручную ключей и :help 'char(-combination)' чтобы узнать, какие ключи уже сопоставлены в vim из коробки (/из ваших конкретных опций компиляции). (Немного не по теме, но все же респектабельно (я думаю): Используйте :scriptnames чтобы увидеть, какие файлы были получены в каком порядке.)

Ответ 5

Я просмотрел :help index и составил список некоторых неиспользуемых ключей nmap:

  • Q (переключиться в режим "Ex")
  • Z кроме ZZ, ZQ
  • \
  • <Space> (то же самое, что и l в обычном режиме; самый большой и самый малоиспользуемый ключ в обычном режиме)
  • gb, gc, gl, gx, gy, gz
  • гс (сон)
  • zp, zq, zu, zy
  • cd, cm, co, cp, cq, cr, cs, cu, cx, cy
  • дк, дм, до, дп, дк, д-р, дс, ду, дх, дм
  • gA, gB, gC, gG, gK, gL, gM, gO, gS, gX, gY, gZ
  • ZB, ZI, ZJ, ZK, ZP, ZQ, ZP, ZS, ZT, ZU, ZV, ZY, ZZ
  • ] a,] b,] e,] g,] h,] j,] k,] l,] n,] o,] q,] r,] t,] u,] v,] w,] x ,] у
  • [a, [b, [e, [g, [h, [j, [k, [l, [n, [o, [q, [r, [t, [u, [v, [w, [x], [у
  • CTRL- G, CTRL- K
  • CTRL-\a - z (зарезервировано для расширений)
  • CTRL-\A - Z (не используется)

Пожалуйста, обновите/прокомментируйте.

Ответ 6

Вы можете использовать mapcheck.: -

Например, я хотел сопоставить <CR> ,i с gg=G с отступом файла. Чтобы проверить, есть ли отображение уже для <CR> , i

if mapcheck("\<CR>", "I") == "" |echo "no mapping"

... но это не будет определять, является ли отображение частью последовательности.

Ответ 7

В духе ответа Михала Чизмации смотрите также:

https://vim.fandom.com/wiki/Unused_keys

Это указывает на несколько привязок, которые он не упомянул, особенно привязки, которые существуют, но относительно неясны/бесполезны. Однако это не завершено либо.