Ich bin in der etwas ungewöhnlichen Position, regelmäßig zwei verschiedene Tastaturlayouts zu verwenden ( Programmierer-Dvorak und Türkisch-F ). Diese Layouts sind sehr unterschiedlich und ich kann nur mit einem Satz Muskelerinnerungen Vim beherrschen. Ich beherrsche vim-Befehle im Dvorak-Layout ziemlich gut, aber es ist fast unmöglich, sie zu verwenden, wenn sich meine Tastatur im Türkisch-F-Layout befindet. Leider bearbeite ich regelmäßig Dateien in Englisch und Türkisch und sogar in gemischten Sprachen. Meine Kenntnisse sind so, dass ich jede Sprache in ihrem jeweiligen Tastaturlayout ziemlich gut eingeben kann, aber mein Gehirn weigert sich, sie zu verkabeln und sogar einige Buchstaben eines Wortes auf Türkisch aus dem Dvorak-Layout einzugeben oder umgekehrt.
Ich habe Zwei-Tasten-Gruß-Bindungen zum Ändern des Layouts in Xorg, aber selbst dies führt zu einem umständlichen Workflow in vim beim Bearbeiten von Dateien in gemischten Sprachen:
<vim commands…>i<switch to tr>…content…<escape><switch to en><vim commands…>
Ich möchte dies auf etwas verkürzen können wie:
<vim commands…><leader>i…content…<escape><vim commands…>
... so dass mit using <leader>i
eine Reihe von :imap
Werten festgelegt wird, um das türkische Layout zu emulieren, ohne das Systemtastaturlayout zu ändern. Gleichzeitig i
würde in den Einfügemodus wechseln, jedoch ohne die zusätzlichen :imap
Werte. Die Werte selbst sind einfach, ich brauche nur die Alphabet-Zuordnungen wie diese:
:imap a u
:imap A U
:imap o i
:imap O İ
"etc.
Die Frage ist, wie die Einrichtung zwei Einsatzarten, eine normale Insert - Modus und ein Pseudo-Insert - Modus, mit Ausnahme einer Reihe von Zuordnungen identisch ist, und wie kann ich auslösen diese Modi mit <leader>i
, <leader>a
usw.?
:imap
dass es auch in einer Remote-SSH-Sitzung funktionieren würde oder wenn $DISPLAY
es nicht anders eingestellt ist.
InsertEnter
undInsertLeave
autocmds, die Sie automatisch auf Schalter - Layout. Insbesondere können Sie auf demInsertLeave
Feld überprüfen, ob es türkisch ist. Wenn dies der Fall ist, wechseln Sie zu Dvorak, setzen Sie ein Flag, und wechseln Sie bei erneuter Eingabe von Einfügen wieder zu Türkisch, wenn dies beim letzten Verlassen des Einfügemodus der Fall war.