Jestem w nieco nietypowej sytuacji, gdy regularnie używam dwóch różnych układów klawiatury ( Programmers-Dvorak i Turkish-F ). Te układy różnią się od siebie i jestem w stanie posługiwać się tylko jednym zestawem wspomnień mięśniowych. Jestem dość biegły w posługiwaniu się poleceniami vim w układzie Dvorak, ale prawie niemożliwe jest użycie, jeśli moja klawiatura jest w układzie tureckim-F. Niestety regularnie edytuję pliki w języku angielskim i tureckim, a nawet mieszanym. Moja biegłość jest taka, że potrafię dość dobrze pisać dowolny język w odpowiednim układzie klawiatury, ale mój mózg nie chce ich krzyżować i pisać nawet kilka liter słowa po turecku z układu Dvorak lub odwrotnie.
Mam powiązania z dwoma kluczami-pozdrowienia do zmiany układu w Xorg, ale nawet to pozostawia mi niezręczny przepływ pracy w vimie podczas edycji plików mieszanych języków:
<vim commands…>i<switch to tr>…content…<escape><switch to en><vim commands…>
Chciałbym móc to skrócić do czegoś takiego jak:
<vim commands…><leader>i…content…<escape><vim commands…>
... takie, że użycie <leader>i
ustawia wiązkę :imap
wartości do emulacji układu tureckiego bez zmiany układu klawiatury systemowej. Jednocześnie i
przełącza się na tryb wstawiania, ale bez dodatkowych :imap
wartości. Same wartości są łatwe, potrzebuję tylko mapowania alfabetu czegoś takiego:
:imap a u
:imap A U
:imap o i
:imap O İ
"etc.
Chodzi o to, w jaki sposób skonfigurować dwoma trybami wstawiania, jeden normalny tryb wstawiania i jeden pseudo wkładka trybie, który jest identyczny z wyjątkiem grupą odwzorowań, iw jaki sposób można wywołać z tych trybów <leader>i
, <leader>a
itp?
:imap
ten sposób, że działałby nawet w zdalnej sesji ssh lub gdy $DISPLAY
inaczej nie jest ustawiony.
InsertEnter
iInsertLeave
autocmds, których możesz użyć do automatycznego przełączania układów. W szczególnościInsertLeave
możesz sprawdzić, czy jest to turecki, jeśli tak, przełącz się na Dvorak, ustaw flagę, a po ponownym wprowadzeniu wstawiania przełącz się z powrotem na turecki, jeśli tak było w przypadku ostatniego wyjścia z trybu wstawiania.