Використання позначок мертвими клавішами


9

Я використовую розкладку клавіатури, в якій backtick ( `) є мертвою клавішею .

Це означає, що коли я набираю backtick з наступним голосним (наприклад `a), то, що бачить Vim, є наголошеним символом ( à). Отже, якщо я встановив позначку за допомогою, maя можу перейти до лінії знака за допомогою 'a. Але перейти до конкретного місця знака `aне вийде.

Я знайшов вирішення цього питання: під час введення мертвого ключа я можу змусити Vim отримати зворотній зв'язок, натиснувши на задній вигляд, а потім пробіл. Тож якщо я хочу перейти до позначки, aя набираю `␣a.

Чи є спосіб перестрибнути на позначку, не забиваючи зайвий простір? Без побічних ефектів?


Не вдається використати задні типи 2 для отримання зворотного вибору? Або налаштувати вашу ОС для цього? Це все-таки додаткова клавіша, але краще, ніж `+ пробіл ...
Мартін Турной

@Carpetsmoker Ні. Введення двох задників зазвичай призводить до `` для мене. Але в звичайному режимі здається, що трапляється інше: я набираю `` a, а Vim каже "E78: Невідома позначка". Від showcmdя думаю , Vim розуміє це як `а. Також я хотів би зробити поведінку ОС незалежною. mapздається, виконує роботу.
Гонсало Рібейро

Відповіді:


13

Спробуйте зробити це зіставлення:

" Mapping dead keys in normal mode
nmap á 'a

Таким чином, коли Vim отримує наголос a, він трактує це як `+a

Використання nmapдозволяє це робити лише в звичайному режимі; у режимі вставки або режимі команд ви отримаєте акценти, aяк ви очікували.

Можна застосувати це до інших клавіш:

nmap à `a
nmap Á 'A
nmap À `A
nmap ç 'c
nmap Ç 'C
nmap é 'e
nmap è `e
nmap É 'E
nmap È `E
nmap í 'i
nmap ì `i
nmap Í 'I
nmap Ì `I
nmap ó 'o
nmap ò `o
nmap Ó 'O
nmap Ò `O
nmap ú 'u
nmap ù `u
nmap Ú 'U
nmap Ù `U

1
Це справді працює. І без побічних ефектів. Я повинен навчитися використовувати карти. Дякую.
Gonçalo Ribeiro

Ласкаво просимо. Радий, що можу допомогти.
Джон О'М.

Як щодо ^ (м'який перший символ рядка)? Оскільки це окрема команда, що можна зробити? Кешує ОС кеш мертвої клавіші, поки не буде натиснута інша клавіша?
Spidey

0
" US-intl keyboard dead key re-mappings
nmap à `a|nmap á 'a
nmap ć 'c
nmap è `e|nmap é 'e
nmap ǵ 'g
nmap ì `i|nmap í 'i
nmap ḱ 'k
nmap ĺ 'l
nmap ḿ 'm
nmap ǹ `n|nmap ń 'n
nmap ò `o|nmap ó 'o
nmap ṕ 'p
nmap ŕ 'r
nmap ś 's
nmap ù `u|nmap ú 'u
nmap ǜ `v|nmap ǘ 'v
nmap ẁ `w|nmap ẃ 'w
nmap ỳ `y|nmap ý 'y
nmap ź 'z

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