Я в дещо незвичному становищі регулярно користуюся двома різними розкладками клавіатур ( Програмісти-Дворак і Турецька-F ). Ці розкладки сильно відрізняються один від одного, і я в змозі бути досвідченим у вімі з одним набором м'язових спогадів. Я досить досвідчений з командами vim в макеті Dvorak, але це практично неможливо використовувати, якщо моя клавіатура знаходиться в макеті Turkish-F. На жаль, я регулярно редагую файли англійською та турецькою та навіть змішаними мовами. Моє знання таке, що я можу досить добре набрати будь-яку мову у відповідному розкладі клавіатури, але мій мозок відмовляється перекреслити їх і набрати навіть кілька літер слова по-турецьки від макета Дворжака або навпаки.
У мене є прив’язки до двох ключів для зміни макета в Xorg, але навіть це залишає мені незручний робочий процес vim при редагуванні змішаних мовних файлів:
<vim commands…>i<switch to tr>…content…<escape><switch to en><vim commands…>
Я хотів би мати можливість скоротити це до чогось такого:
<vim commands…><leader>i…content…<escape><vim commands…>
... таке, що за допомогою <leader>i
набору купу :imap
значень для емуляції турецького макета без зміни компонування клавіатури системи. У той же час, i
перейде в режим вставки, але без зайвих :imap
значень. Самі значення прості, мені просто потрібні відображення алфавіту приблизно так:
:imap a u
:imap A U
:imap o i
:imap O İ
"etc.
Питання полягає в тому , як встановити два режими вставки, один нормальний режим вставки і один псевдо вставки режим , який ідентичний для зв'язки відображень , крім, і як я можу викликати ці режими з <leader>i
, <leader>a
і так далі?
:imap
що це буде працювати навіть у віддаленому сеансі ssh або коли $DISPLAY
інше не встановлено.
InsertEnter
іInsertLeave
autocmds, які можна використовувати для автоматичного перемикання макетів. Зокрема,InsertLeave
ви можете перевірити, чи це турецька мова, якщо вона є, перемкнути на Дворак, встановити прапор, а коли ви введете вставити знову, перемкніть назад на турецьку, якщо це було в останній раз, коли ви вийшли з режиму вставки.