Настройка VIM программиста для финской / шведской или другой неамериканской раскладки клавиатуры

Недавно я изучил некоторые хакерские приемы VIM, выучил много полезных команд и довольно эффективно редактировал текст с помощью VIM. Я использую финскую раскладку клавиатуры qwerty (см. Изображение ниже), которая ужасна для программирования. Все ваши обычные специальные символы кодирования ()[]{}/\ появляются при нажатии либо shift, либо alt gr и клавиши number, но я уже довольно привык к этому . Я не хочу менять раскладку клавиатуры, так как я довольно много пишу и болтаю в IRC на моем родном языке, и для этого мне нужны символы ä и ö (å бесполезен для меня, только шведы его используют).

Моя проблема в том, что некоторые команды VIM по умолчанию имеют довольно сложную раскладку клавиш, например переход к тегу под курсором - ^], что переводится как Ctrl - AltGr - 9 на финской клавиатуре. Для этого мне нужно нажать клавишу left control левой рукой, alt gr большим пальцем правой руки и протянуть указательный палец правой руки до числа 9 ключ. Это похоже на использование emacs и / или игру на классической гитаре. Не совсем эргономичный.

Вот как выглядит раскладка клавиатуры:

sweden keyboard

ПРИМЕЧАНИЕ: клавиши, отмеченные синим цветом, записываются нажатием AltGr (правый alt) и соответствующей клавиши. Красные - это двухклавишные символы или мертвые клавиши, которые сами по себе не выдают символ. F.ex. чтобы ввести символ ü, сначала нажмите клавишу ¨ ^ ~, а затем u. То же самое и с акцентными клавишами. Эти мертвые ключи невозможно отобразить в VIM.

Итак, в основном у меня есть 3 дополнительных алфавитных ключа (ä ö å), но их нельзя сопоставить более одного раза, клавиши-модификаторы не работают с ними (в VIM). Я могу сопоставить что-то с ä, но не с Ä или <C-ä>.

Теперь я ищу идеи для моей установки VIM от других финских / шведских или других пользователей раскладки клавиатуры за пределами США. Пожалуйста, поделитесь своими сопоставлениями ключей, советами по .vimrc и всем остальным, что может быть полезно.


person exDM69    schedule 08.12.2010    source источник
comment
+1, чтобы вы могли публиковать изображения: P   -  person Tronic    schedule 09.12.2010
comment
Фактически вы можете сопоставить действия с Ö и Ä, но насчет <C-ä> сопоставлений вы правы.   -  person ruohola    schedule 13.03.2019


Ответы (6)


Я просто сохраняю клавиатуру с американской раскладкой при кодировании и переключаюсь на локальную раскладку (итальянскую) только при написании текста, который требует акцентированных букв или других языковых символов. В конце концов, это просто нажатие клавиши для переключения, и ничто не сравнится с американской раскладкой для программирования. Я попробовал немного, но обнаружил, что указание множества сопоставлений для обхода этой проблемы намного сложнее, чем переключение полного макета при необходимости.

person Matteo Riva    schedule 08.12.2010

Мое решение - использовать индивидуальное сочетание макетов США и FIN / SWE. Работает неплохо (или, по крайней мере, лучше, чем ужасное расположение плавников). Изображение моего макета

На этом изображении, вероятно, не все персонажи, которые есть у меня, но все равно большинство из них.

person zokier    schedule 08.12.2010

Мое решение заключалось в том, что я создал собственную раскладку клавиатуры, которая сочетает в себе лучшие аспекты американской раскладки с финской. Приятно то, что он сводит изменения к минимуму, так что кривая обучения практически отсутствует.

Философия, лежащая в основе этого, заключалась в том, чтобы минимизировать необходимость использования AltGr и при этом сохранить его как можно ближе к стандартной компоновке Fin, насколько это возможно. И хотя под AltGr есть несколько клавиш, все они находятся под номерами слева, поэтому вам никогда не придется неловко нажимать на них правой рукой, удерживая модификатор большим пальцем.

Программы, которые я использовал для создания макета, были Ukelele для macOS и Microsoft Keyboard Layout Creator для Windows. Я называю это Finner.keylayout / Finner.klc. Вот его репозиторий на GitHub: https://github.com/ruohola/finner.

Вот базовая раскладка (в ней намного больше клавиш под модификаторами) с выделенными измененными клавишами:

Изображение раскладки клавиатуры

person ruohola    schedule 13.03.2019
comment
Лол, я думал, что я единственный, у кого есть такое решение! - person rickythefox; 17.04.2020
comment
@rickythefox: D также не стесняйтесь поделиться своим. - person ruohola; 17.04.2020

Вы можете использовать langmap и настройку раскладки клавиатуры в VIM. Использую для колемака. Вы можете указать свой собственный макет.

h keymap
h langmap
person max    schedule 12.12.2010

Не могли бы вы просто переключаться между макетами в качестве практической временной меры?

Например, в Ubuntu вы можете настроить горячие клавиши для легкого переключения между макетами, перейдя в Preferences → Keyboard → Layouts → Options → Key(s) to change layout. Я использую обе клавиши Shift для быстрого перехода между макетами, и есть даже опция, чтобы каждое окно имело собственную настройку макета, которая хорошо работает, если вы программируете в Vim в макете на английском языке при написании документации / электронных писем и т. Д. в других окнах с другим расположением. Даже если мне придется переключать макеты (для комментариев к коду и т. Д.), Требуется очень мало усилий, чтобы нажать обе кнопки Shift и продолжить.

Должны быть аналогичные способы настройки этого в других средах рабочего стола / операционных системах.

person gotgenes    schedule 08.12.2010
comment
Огромный недостаток заключается в том, что многие распространенные сдвинутые клавиши, такие как * и ‹, находятся в совершенно разных местах в американской раскладке. Вы можете переключаться между ними с некоторым усилием, но отслеживание того, в каком из них вы находитесь, теперь еще одно отвлечение. (Хотя, если вам нравится vim, возможно, вы уже запомнили, находитесь ли вы в режиме вставки или нет; здесь сварливый пользователь Emacs.) - person tripleee; 15.12.2020

Я просто сопоставил эти комбинации клавиш другим комбинациям клавиш.

Например, ctrl - ] отображается на meta - down.

person Luc Hermitte    schedule 09.12.2010
comment
На самом деле вы можете просто нажать CTRL и ¨^~, чтобы получить действие CTRL-] в Vim. Это работает, потому что Vim отслеживает коды клавиш, а не фактические символы в CTRL последовательностях. - person ruohola; 13.03.2019
comment
@ruohola, ты прав, но для этого мне нужно запомнить, где ] находится на американской клавиатуре. Я уже помню ожидаемую привязку клавиш (CTRL-]) и не знаю почему. Поэтому, в конце концов, я выбрал привязку клавиш, которая почему-то имеет смысл в моей голове для перехода к тегу под курсором, так как у меня также есть <m-left> и <m-right> для навигации по местам перехода. - person Luc Hermitte; 13.03.2019
comment
Совершенно понятно, просто хотел отметить, что переназначение не требуется. Я сам решил проблему, используя нестандартную раскладку клавиатуры, как вы можете видеть из моего ответа. - person ruohola; 13.03.2019