Closed kukushkawi closed 2 years ago
Добрый день, а почему
let g:XkbSwitchIMappings = ['ru, uk, us']
а не
let g:XkbSwitchIMappings = ['ru', 'uk', 'us']
Он, кажется, на это и ругается. Кстати, у меня тоже Neovim 0.6, и плагин работает.
Действительно ошибся, видимо проглядел когда читал readme. Поправил, те ошибки исчезли, но появились четыре других. Приложил скриншот. Плагин у меня работает, лишь эти ошибки появляются. Первое время думал что переживу, но когда нужно было что-то быстро записать... в итоге решил всё же открыть issue
Посмотрите документацию (в README.md) про g:XkbSwitchIMappings
, там сказано, что из коробки поддерживается только раскладка для русского языка (ru), и показано на примере как добавить поддержку немецкого (de). Но у вас кроме русского, us и uk - маппинги для них переводить вообще не нужно, так как они изначально соответствуют оригинальной английской раскладке.
Соотвественно, объявите просто
let g:XkbSwitchIMappings = ['ru']
Это то, что реально нужно.
Блин, выходит очень сильно проглядел. Исправил и теперь ошибок нет. С украинской раскладкой (которую я и обозначал uk, потому что другого кода для этого языка нет, когда для британского английского есть GB(en_GB), поправьте если не прав), кажется, всё работает. Извините за потраченное время. Ещё раз спасибо за ваш плагин, без него я бы уже ушёл на какой-нибудь другой редактор. Он незаменимый для заметок в vimwiki. Да и поддерживать плагин такое количество времени вряд-ли бы кто-то стал. Спасибо за помощь
И вам спасибо за добрые слова ))
Оказывается, uk это украинский (я сначала почему-то подумал, что это united kingdom, сорри). Да, вам нужно вручную написать сопоставление символов из us в uk - грубо говоря, перевести английские символы на клавишах в украинские, соответствующие данным клавишам. В принципе, это не обязательно - это всего лишь маппинги в режиме ввода, и если вы не пользуетесь ими активно, то они и не нужны. Но некоторые плагины, например, управляющие автоматическим добавлением парных скобок, могут определять свои insert mappings, и это может приводить к разным неожиданным эффектам: в этом случае, перевод g:XkbSwitchIMappings
на язык, отличный от us, может оказаться необходимым.
Да ничего, я и сам в повседневной жизни прежде всего подумал бы об uk как об United Kingdom. Я кое-как запомнил это, лишь благодаря запросам, которые я вводил когда искал какое сокращение у украинского. До сих пор uk ассоциируется с United Kingdom. Особо такими плагинами не пользуюсь (по крайней мере не припоминаю таких), но возьму на вооружение и обязательно попытаюсь их написать. Про многое из рассказанного вами не знал, спасибо что рассказали. Удачи и спасибо за помощь
Извиняюсь, что так донимаю, но у меня при взгляде на документацию про сопоставление символов возник вопрос:
let g:XkbSwitchIMappingsTr = { \ 'ru': \ {'<': 'qwertyuiop[]asdfghjkl;''zxcvbnm,.
/'.
\ 'QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?~@#$^&|',
\ '>': 'йцукенгшщзхъфывапролджэячсмитьбюё.'.
\ 'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё"№;:?/'},
\ 'de':
\ {'<': 'yz-[];''/YZ{}:"<>?~@#^&_\',
\ '>': 'zyßü+öä-ZYÜÖÄ;:_°"§&/(?#'},
\ }
` во втором языке (в примере из документации это de) нужно также вводить qwerty как в первом? Специально проверял про правильную немецкую раскладку ли я думаю. Могу ли я сделать также как в примере с русским но для второго языка лишь изменив несколько отличных букв?
md накосячил с вырезкой из документации(
В de qwert не нужно переводить, так как эти символы расположены одинаково с английской раскладкой, а вот y заменяется на z - с этого и начинается трансляция, в общем правило такое - смотрим на клавиши, если символ в транслируемом языке совпадает с английской раскладкой, то записывать в маппинги его не нужно, в русском и украинском (в отличие от немецкого) почти все клавиши не совпадают, поэтому перевод там длинный. Кроме этого, нужно особенно осторожно переводить знаки пунктуации - в документации есть пример к каким чудесам такие переводы могут привести, но тут заранее не угадать, поскольку конкретное нездоровое поведение может зависеть от других плагинов с собственными insert mappings, поэтому если что-то начнёт работать странно при вводе, то возможно придётся удалить некоторые переводы символов пунктуации.
Так как раскладки почти идентичные, я скопировал русскую раскладку и заменил отличные знаки. В одном моменте (после "ю") знак ' закрывал элемент, поэтому я продублировал этот знак
\ 'ru':
\ {'<': 'qwertyuiop[]asdfghjkl;''zxcvbnm,.`/'.
\ 'QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?~@#$^&|',
\ '>': 'йцукенгшщзхъфывапролджэячсмитьбюё.'.
\ 'ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё"№;:?/'},
\ 'uk':
\ {'<': 'qwertyuiop[]asdfghjkl;''zxcvbnm,.`/'.
\ 'QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?~@#$^&|',
\ '>': 'йцукенгшщзхїфівапролджэячсмитьбю''.'.
\ 'ЙЦУКЕНГШЩЗХЇФІВАПРОЛДЖЭЯЧСМИТЬБЮ,ʼ"№;:?/'},
\ }
(не уверен, что не накосячил с md тут) Пока никаких ошибок и "сюрпризов" не заметил
Выглядит хорошо, только Ээ в украинском нет же (они в другую сторону должны смотреть). Если хотите, присылайте пулл-реквест - это можно вставить в файлы xkbswitch.vim и xkbswitch.tr (при этом кодировка при редактировании должна быть Utf8, на современных линуксах это всегда так, да и в других ос тоже, наверное). И у вас пользовательские настройки станут проще.
Да, точно, вы правы, их нет, прозевал (сонливость даёт о себе знать), сейчас исправил. Смешно об этом говорить, но я не очень разбираюсь в git (что говорить, когда я лишь недавно начал использовать github) и его работе, даже несмотря на то, что я уже длительное время использую дистрибутив на линуксе (выделил это, потому что RMS держит в заложниках), поэтому про пулл реквест не уверен, что правильно вас понял. Отредактировал названные вами файлы:
Прислал два отдельных пулл реквеста. Первый редактирует xkbswitch.tr, второй же, соответственно, xkbswitch.vim. Как-то так
Круто! Смерджил. Правда почему-то в вашем реквесте в g:XkbSwitchIMappingsTr
пропала двойная одинарная кавычка для uk после бю - я поправил, еще в xkbswitch.tr поменял местами de и uk, так как uk похож на ru - пусть они будут рядом. Спасибо!
Странно. Может как-то случайно нажал "x" и удалил. Сам думал изменить расположение украинской раскладки, но на скорую руку оставил как было. В любом случае, спасибо вам, и удачи!
Здраствуйте. Очень благодарен вам за плагин. Довольно долгое время он работал бесперебойно, но некоторое время назад я столкнулся с багом (?). Случилось это когда я переписывал конфиг для nvim (версия 0.6.0). Некоторое время он отказывался работать вовсе, но я всё же как-то его настроил и он работает. Сейчас при открытии любых файлов выбивает ошибки. Пробовал создать отдельный конфиг с только вашим плагином и результат не очень изменился, точнее совсем не изменился. Приложил скриншот ошибок (не всех, но они там почти не отличаются, буквально несколько чуть-чуть других ошибок если понадобится и их приложу). Содержание конфигурации плагина:
Plug 'lyokha/vim-xkbswitch' let g:XkbSwitchEnabled = 1 let g:XkbSwitchLib = "/usr/lib/libxkbswitch.so" let g:XkbSwitchNLayout = 'us' let g:XkbSwitchIMappings = ['ru, uk, us']
Пробовал наверное все возможные конфигурации плагина, но только с этими он работал (могу для точности проверить не ошибся ли я если нужно). Постарался дать столько информации сколько могу, надеюсь она будет полезна