LINUX.ORG.RU

Vim: русская раскладка. Три способа

 , ,


2

2

Как я понимаю, есть три способа работать с русской раскладкой.

Первый способ: использовать langmap. Этот способ, вроде бы, устарел, никаких профитов не приносит.

Там 100500 реализаций, у каждого пользователя своя, но вот официальная:

set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz

Второй способ: использовать keymap. Вроде самый нормальный на сегодня (переключается через Ctrl-^).

set keymap=russian-jcukenwin
set iminsert=0 " Чтобы при старте ввод был на английском, а не русском (start > i)
set imsearch=0 " Чтобы при старте поиск был на английском, а не русском (start > /)
" Дополнительно можно добавить:
inoremap <C-l> <C-^> " Чтобы вместо Ctrl-^ нажимать Ctrl-L
highlight lCursor guifg=NONE guibg=Cyan " Смена цвета курсора

Третий способ: использовать плагин https://github.com/lyokha/vim-xkbswitch. Есть ли там профиты? Не знаю. Про него было несколько тредов, вот один из: Vim. Назначение горячих клавиш кириллицей.

Вопросы:

[*] Правильно я понял, что первый способ использовать вообще смысла нет?
[*] Есть ли смысл использовать плагин вместо второго варианта?
[*] Есть ли недостатки у второго варианта?
Deleted

Слишком сложно. Можно сделать так чтобы при входе в командный режим английская раскладка в ловеркейсе включалась (т.е. капслок тоже отключался)? Глобально в иксах, в терминале? По выходу чтобы возвращалось как было (независимо от того менял ли ты язык или нет). Очень уж напрягает.

anonymous ()

Заодно как удалить капслок? У меня на капслоке переключение раскладок, шифт+капслок включает капслок, но от него больше вреда чем пользы.

anonymous ()

Способ 4 - не работать в normal mode с русской раскладкой. Повесь ее на «зажатый правый Alt» или «зажатая педаль» и проблемы как рукой снимет.

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

В смысле? Ну вот ты набирал комментарий в коде на русском языке. У тебя раскладка русская. Нажимаешь Escape чтобы перейти в Normal mode. И она по-прежнему русская.

Deleted ()
Последнее исправление: myLogin (всего исправлений: 1)
Ответ на: комментарий от anonymous

На CapsLock у меня Ctrl, раскладки не переключаются, а включаются: En — левый win, Ru — правый (menu). Esc и Tab поменяны местами.

webmonkey ()
Ответ на: комментарий от Deleted

набирал комментарий в коде на русском языке. донабрал. перед или после нажатия Escape отпустил Alt, ибо уже не набираешь комментарий в коде на русском языке.

основной плюс: русскость твоей раскладки в таком способе «переключения» становится stateless и равной зажатости Altа. это довольно быстро прошивается в подкорку и проблемы подобной сабжевой исчезают на корню

основной минус: риск развития болезни де Кервена или аналогичного RSI, если хреново выбрал кнопку для зажатия

t184256 ★★★★★ ()

способ с langmap самый быстрый и простой, используй его и не парься.
для переключения в vim 8 добавили event для cmd
au CmdLineEnter * :call job_start('xkb-switch -s us')
и CmdLineLeave соответсвенно.

arrecck ★★ ()
Ответ на: комментарий от t184256

Ну я понял, нет, мне это точно не подходит.

Deleted ()
Ответ на: комментарий от arrecck

Ну хз. Как по мне — каша из букв, которая на некоторых юзкейсах еще и не работает.

Deleted ()
Последнее исправление: myLogin (всего исправлений: 2)
Ответ на: комментарий от webmonkey

не работать в normal mode с русской раскладкой

translating these special characters to the original meaning of the key (:help langmap)

ошибочно считаешь, че.

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

ошибочно считаешь

Не может быть. langmap я пробовал, не пошло, убрал. Гораздо проще оказалось «не работать в normal mode с русской раскладкой», так что этот способ №1, а не 4.

webmonkey ()

Третий способ (xkbswitch) — наилучший вариант для кириллицы, первые два имеют свои камни и бока, нет времени объяснять.

Bruce_Lee ★★ ()

vim-xkbswitch если кто на Ubuntu 18.04 использует, напишите, как ставили. А то у меня не работает, пользуюсь keymap

Crocodoom ★★★★★ ()
Ответ на: комментарий от Crocodoom

Первый и второй способ пробовал по удобству сравнивать?

Deleted ()

Третий способ: использовать плагин https://github.com/lyokha/vim-xkbswitch. Есть ли там профиты?

Если нужен только линукс, то наверное лучший способ. Я использую для переключения kbdd и для этого у меня свой велосипед, меняющий раскладку по d-bus.

Второй способ хорош тем, что работает на любой платформе.

andreyu ★★★★★ ()

Я придумал такой, достаточно универсальный способ решения проблем переключения, который годится на случай, если кириллица в тексте преобладает. Он состоит в том, что можно вводить латиницу в кириллической раскладке, удерживая нажатым пробел. Чтобы ввести пробел, нужно, соответственно, нажать пробел и отпустить его.

Правда, реализовать его удалось только для частного случае моего debian-а и моего lxde. И только для иксов, локально (не пробовал всякие удалённые подключения).

См. Использование пробела в качестве Alt_R в xkb и создание Яро-раскладки (комментарий)

ваши замечания приветствуются. Надо сразу сказать, что раскладка не была заточена на вим, который я знаю на уровне i что-то напечатать / что-то поискать Esc :wq! .

Конкретно для ввода этих команд пришлось помучаться, потому что двоеточие находится на цифре 6 (как в русской раскладке), и её нельзя ввести в английской с пробелом. Прямой слеш также вводится с шифтом. Т.е. всё равно неудобно. Может быть, можно сделать какой-то аналог, более заточенный под Вим.

den73 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.