Использование меток с мертвыми ключами

9

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

Это означает, что когда я набираю знак обратной черты, за которым следует гласный (например `a), то, что видит Vim, это ударенный символ ( à). Поэтому, если я установлю метку с помощью, maя могу перейти к линии метки с помощью 'a. Но переход к определенному месту метки с помощью `aне сработает.

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

Есть ли способ перейти к цели, не ударяя это дополнительное пространство? Без побочных эффектов?

Гонсалу Рибейро
источник
Не можете использовать backtick типа 2, чтобы получить backtick? Или настроить свою ОС для этого? Это все еще дополнительное нажатие клавиши, но лучше, чем `+ пробел ...
Мартин Турной
@Carpetsmoker Нет. Ввод двух обратных знаков обычно приводит к `` для меня. Но в обычном режиме кажется, что происходит другая вещь: я набираю `` a, и Vim говорит "E78: Unknown mark". По- showcmdмоему, Вим понимает это как `а. Также хотелось бы сделать поведение ОС независимым. mapкажется, делает работу.
Гонсалу Рибейру

Ответы:

12

Попробуйте сделать это картированием:

" Mapping dead keys in normal mode
nmap á 'a

Таким образом, когда Vim получает ударение, он интерпретирует его как `+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
Джон О'М.
источник
Это работает. И без побочных эффектов. Я должен научиться использовать карты. Спасибо.
Гонсалу Рибейру
Пожалуйста. Рад, что смог помочь.
Джон ОМ.
Как насчет ^ (мягкий первый символ строки)? Так как это отдельная команда, что можно сделать? Кэширует ли ОС мертвую клавишу до тех пор, пока не будет нажата другая клавиша?
Spidey