Używanie znaków z martwymi klawiszami

9

Korzystam z układu klawiatury, w którym backtick ( `) jest martwym klawiszem .

Oznacza to, że kiedy piszę lewy strzałkę, a następnie samogłoskę (na przykład `a), Vim widzi znak akcentowany ( à). Więc jeśli ustawię znak za pomocą ma, mogę przeskoczyć do linii znaku za pomocą 'a. Ale przeskakiwanie do określonej lokalizacji znaku `anie zadziała.

Znalazłem sposób na obejście tego: podczas pisania martwego klawisza mogę sprawić, że Vim otrzyma lewy strzał, naciskając lewy klawisz spacji i następnie spację. Więc jeśli chcę przejść do zaznaczenia, apiszę `␣a.

Czy istnieje sposób, aby wskoczyć do celu bez konieczności uderzania w tę dodatkową przestrzeń? Bez efektów ubocznych?

Gonçalo Ribeiro
źródło
Czy nie można użyć odwrotnego typu 2, aby uzyskać odwrotny cel? Lub skonfigurować swój system operacyjny, aby to zrobić? To wciąż dodatkowa kombinacja klawiszy, ale lepsza niż `+ spacja ...
Martin Tournoij
@Carpetsmoker Nie. Wpisanie dwóch tyknięć zwykle powoduje dla mnie ``. Ale w trybie normalnym wydaje się, że dzieje się coś innego: piszę `` a, a Vim mówi „E78: Nieznany znak”. Od showcmdmyślę Vim rozumie to jako `a. Chciałbym również uczynić zachowanie OS niezależnym. mapzdaje się wykonywać pracę.
Gonçalo Ribeiro

Odpowiedzi:

13

Spróbuj zrobić z niego mapowanie:

" Mapping dead keys in normal mode
nmap á 'a

W ten sposób, gdy Vim uzyska akcent a, interpretuje to jako `+a

Używanie nmappozwala na to tylko w trybie normalnym; w trybie wstawiania lub w trybie poleceń uzyskasz akcent, ajak można się spodziewać.

Można to zastosować do innych kluczy:

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
John O'M.
źródło
1
To działa. I bez efektów ubocznych. Powinienem nauczyć się korzystać z map. Dziękuję Ci.
Gonçalo Ribeiro
Nie ma za co. Cieszę się, że mogłem pomóc.
John O'M.
Co z ^ (miękki pierwszy znak linii)? Ponieważ jest to samodzielne polecenie, co można zrobić? Czy system operacyjny buforuje martwy klucz do momentu naciśnięcia innego klawisza?
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
dezorientować
źródło
1
Cześć, witam tutaj. Myślę, że możesz podać wyjaśnienie, dlaczego Twoja odpowiedź jest przydatna i jak rozwiązuje problem :)
Biggybi