Виявити, чи ключ прив’язаний до чогось у vim


89

Я хотів би знати, чи є спосіб з’ясувати, чи робить ключ щось у vim. Я знаю, що я можу використовувати :mapдля перегляду визначених користувачем зіставлення, але чи є щось для вбудованих матеріалів?

Наприклад, у мене завжди було CTRL- Wпов'язано з тісною вкладці, тому що я думав , що це було невикористаними. Через півроку я з'ясував, що існують деякі послідовності, які використовують це, наприклад CTRL-, W CTRL- Sщоб розділити вікно, і це було кошмаром перекваліфікуватися.


4
Говорячи про випадкові зіткнення визначених користувачем зіставлення, насправді хорошою практикою є використання mapleader
derenio

Відповіді:


79

Якщо ви перевірите запропоновану відповідь Ренді Морріса, ви це знайдете

:help index 

дасть вам список, який ви хочете.


дуже корисний! Добре знати, що є місце, куди можна зайти шукати, якщо ви просто хочете
поколупати,

40

Щоб перевірити відображення за замовчуванням:

:help index

Для іншого зіставлення, яке виконують користувачі або плагін:

:map
:map!

З http://vim.wikia.com/wiki/Mapping_keys_in_Vim_- Підручник (частина_1) :

Перша команда відображає карти, які працюють у звичайному, візуальному режимі та в режимі очікування вибору та оператора. Друга команда відображає карти, які працюють у режимі вставки та командного рядка.

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

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

Якщо новіші версії Vim раптом не запропонують кращої альтернативи, це, здається, єдиний спосіб пошуку як включених, так і спеціальних карт клавіш. mapcheck(як згадано в іншій відповіді ) також охоплює лише власні сполучення клавіш. Основна різниця між виведенням у текстовий файл та перевіркою мапи полягає в тому, що виведення у текстовий файл та / або використання :help indexдозволяє /C-wу Vim знайти що-небудь, використовуючиC-w
Zoe

34

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

У цьому розділі довідки є рекомендація щодо того, як визначити, чи певний ключ зіставлений із дією.


19

Використовуйте :map!і :mapдля вручну встановлених клавіш, і :help 'char(-combination)'щоб дізнатись, які ключі вже зіставлені у vim out-of-the-box (/ з ваших конкретних параметрів компіляції). (Трохи не в темі, але все ще можна переглянути (я думаю): Використовуйте, :scriptnamesщоб побачити, які файли були створені в якому порядку.)


Якщо ви хочете знайти, які клавіші запускають певну команду, ви можете зробити це:: redir keys.txt: map: redir end Потім відкрийте keys.txt і знайдіть, які команди пов'язані.
Крістіан Удар

18

Я проглянув :help indexі склав список деяких невикористаних nmapклавіш:

  • Q (перейти в режим "Ex")
  • Z, крім ZZ, ZQ
  • \
  • <Space>(те саме, що і lв звичайному режимі; найбільший і найменш використаний ключ у звичайному режимі)
  • gb, gc, gl, gx, gy, gz
  • gs (сон)
  • zp, zq, zu, zy
  • cd, cm, co, cp, cq, cr, cs, cu, cx, cy
  • dc, dm, do, dp, dq, dr, ds, du, dx, dy
  • 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 ,] y
  • [a, [b, [e, [g, [h, [j, [k, [l, [n, [o, [q, [r, [t, [u, [v, [w, [x] , [y
  • CTRL-G, CTRL-K
  • CTRL- \ a - z (зарезервовано для розширень)
  • CTRL- \ A - Z (не використовується)

Будь ласка, оновіть / прокоментуйте.


12

Ви можете використовувати mapcheck.: -

Наприклад, я хотів перетворити <CR> ,iна gg=Gфайл із відступом. Щоб перевірити, чи вже існує відображення для<CR> , i

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

... але це не виявить, якщо відображення є частиною послідовності.


Я намагався перевірити, чи "o" прив'язане до чогось у звичайному режимі, з наступним: if mapcheck ("o", "N") == "" | echo "відсутність відображення", але він повідомляє "відсутність відображення", коли o безумовно зобов'язаний "відкрити новий рядок". Я використовую це неправильно?
К. Норберт

@ K.Norbert: Я вважаю це для визначених користувачем відображень
Моха Всемогутній верблюд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.