LINUX.ORG.RU

Как реализовать работу с кириллицей в vim?

 


0

2

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

Поискав, я обнаружил статейку на хабре, в которой говорится, что можно очень легко и беззаботно настроить смену раскладки в режиме редактирования... забиндив её на Ctrl-^. На вопросы, а как же переставить её на человеческое сочетание типа Alt+Shift, в комментах стыдливо помалкивают или говорят что-то вроде «вим хороший, иксы плохие».

Может, есть какое-то альтернативное решение, или настройка вима под себя и в самом деле пропадает через час использования?


человеческое сочетание типа Alt+Shift

Какое-нибудь Ctrl-L не менее человеческое, а Alt+Shift до приложений скорее всего вообще не доходит, только иксы их могут ловить.

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

Ну и что, что не доходит? Неужто нельзя воспринимать кириллицу в normal mode как латиницу, например?

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

Шо-то не фурычит. Вроде бы плагин загрузился, путь к libxkbswitch.so указан, но не работает. Щас буду пытаться завести, т.к. судя по описанию, это именно то, что мне нужно.

tsmx ()

Нужны костыли и подпорки. И это в 2017 году. Позор товарищи.

SyntaxError ()
Ответ на: комментарий от Svobodniy

Так, я даун. Перетёр файл с плагином. Всё работает, всем спасибо.

tsmx ()
set langmap=йq,цw,уe,кr,еt,нy,гu,шi,щo,зp,х[,ъ],фa,ыs,вd,аf,пg,рh,оj,лk,дl,ж\\;,э',яz,чx,сc,мv,иb,тn,ьm,б\\,,ю.,ё`,ЙQ,ЦW,УE,КR,ЕT,НY,ГU,ШI,ЩO,  ЗP,Х{,Ъ},ФA,ЫS,ВD,АF,ПG,РH,ОJ,ЛK,ДL,Ж:,Э\\",ЯZ,ЧX,СC,МV,ИB,ТN,ЬM,Б<,Ю>,Ё~
orm-i-auga ★★★★★ ()
Ответ на: комментарий от SyntaxError

Справедливости ради, в Sublime тоже не работают хоткеи в не US раскладке.

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

Если бы под жаву существовала ide, не написанная на жаве же, я бы вообще не задавался этим вопросом. Но...

tsmx ()
set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>
vvviperrr ★★★★★ ()
Последнее исправление: vvviperrr (всего исправлений: 1)
Ответ на: комментарий от tsmx

Про langmap уже написали пару раз, так можно. Но если не доходит, то использовать это сочетание понятное дело невозможно.

xaizek ★★★★★ ()

При выходе из insert mode менять раскладку на eng

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

Через три года до тебя дойдет понимание, что это самое лучшее решение.

Xwo ()

Неужели так сложно переключать раскладку?

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

Главное, чтобы тебе за эти три года ни разу не пришлось перемещаться по русскоязычному тексту с твоим «решением». Иначе ты моментально поймёшь, насколько оно «удобное».

/слово, f{буква}? Не, не слышал.

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

/слово<CR> и опа, ты в normal mode с eng в руках. Жмякай свою f. Вопросы ?

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

Ага, не понимание того, что ты или пишешь или должен находиться в normal mode, рождает такие вещи, как vim-xkbswitch.

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

/слово<CR> и опа, ты в normal mode с eng в руках. Жмякай свою f. Вопросы ?

Да, есть один. Ты хоть раз по-настоящему работал с русскоязычным текстом в vim или просто мимокрокодил? Я говорю не про русскоязычные комментарии в коде или конфигах. Я говорю про настоящий, полностью русскоязычный текст.

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

Да, я понял. Ты после поиска пытаешься прыгнуть на букву. Ну что ж, пишите комментарии к коду на eng

Xwo ()

Поискав, я обнаружил статейку на хабре

неправильно.
Правильно:
:h russian<CR>

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

Да, я понял. Ты после поиска пытаешься прыгнуть на букву. Ну что ж, пишите комментарии к коду на eng

Нет, ты ничего не понял. Две команды были перечислены через запятую как примеры команд, на которых валится твоё решение

При выходе из insert mode менять раскладку на eng

Последовательное выполнение этих команд не подразумевалось.

И да, мир текста не ограничен кодом и конфигами. Попробуй пописать в vim на русском что-то большее, чем комменты к коду, у тебя за 5 минут руки отсохнут переключать раскладку. И ты придёшь к одному из двух полноценных решений, уже упомянутых в этой теме (заглавный пост и первый ответ). А не будешь плодить тупняк.

Crocodoom ★★★ ()

спецы понабижали как обычно.

mos ★★☆☆☆ ()

при решении с keymap лучше переключаться <C-space>

langmap, кажется, был поудобнее, но что-то косячило, уже не помню.

я пришёл к мнению, что самый удобный способ - заменить алфавит в используемых языках, или сами языки. Но многих это нервирует.

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

Нужны костыли и подпорки. И это в 2017 году. Позор товарищи.

Позор тому, кому они нужны.

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

Нет.

Выше уже объяснил товарищу Xwo, повторять не буду.

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

set keymap=russian-jcukenwin и все клавиатурные сочетания работают в ru

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

Всё-равно переключать раскладку. Хоть в виме, хоть вне вима.

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

Ну да, как вариант. Можно ещё добавить показ раскладки в статус-баре, изменение его цвета, и перемапить <C-^> на более удобный <C-L>.

И получится мой vimrc, который ты между прочим комментил несколькими днями ранее...

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

Всё-равно переключать раскладку. Хоть в виме, хоть вне вима.

Не всё равно. Если набирать полностью русский текст (статью в блог, например), то можно полноценно пользоваться командным режимом вима, скакать по буквам, словам, искать слова и т.д., при этом коснуться переключалки языка (что вимовской, что системной) примерно 0 раз.

Если текст мультиязычный (например, код с вкраплением русских комментариев), то переключаться, разумеется, придётся.

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

C-l используется обычно для сброса найденного

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

Ну если учесть, что тред с этого и начинался... :)

ТС изначально привёл ссылку на решение set keymap. И его не устроило, что в таком решении теряется уютный Alt+Shift, поэтому он спросил об альтернативах.

Crocodoom ★★★ ()

Никак – вим устарел архитектурно, технически, морально и аморально.
И будет ещё много лет устаревать. Зато простой и лёгкий.

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

Если повезет то в nvim может такого секса не будет. Или нет алфавита кроме латиницы и vim тому пример.

SyntaxError ()

Вот из-за этого я на него и забил ещё на этапе tutor (gvim) + ещё какие-то косяки вылазили при его прохождении, требующие ковыряния и дописывания конфигов. Всё любопытство отбило.

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

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

Проблемы вима это:
– работа с длинными строками, боже это просто ад, тормозящая навигация;
– медленная подсветка синтаксиса при навигации, что выливается в лагодром;
– лейауты названы табами. В 2017 таб это такая отдельная штучка с документом и между несколькими табами можно переключаться. Лейаут это представление нескольких документов или среды в целом, например в 3D редакторе это может быть отображение нескольких проекций для одной сцены (сверху, снизу и т.д.);
– нет нормального сервера, чтобы открывать документы в одном инстансе вима (для копирования текста между ними). Т.е. как в любом графическом редакторе сегодня типа саблайма, открываешь документ и он прилетает в то же окно и логически находится в том же типа общем пространстве документов.

Вим крут, но надо много актуализировать под современные реалии.

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

Да меня добивает подобное в MPV, когда что-то писал на не английском языке и переключился назад в плеер и хоткеи не работают, потому что они инглиш онли, дико бесит учитывая, что там в принципе невозможно вводить текст, а есть только хоткеи.

Exmor_RS ★★ ()

Alt+Shift

Это не для человеков, это для осьминогов. Человеки используют LoloSwitcher. Настроил LShift=en, RShift=ru, RAlt=ua — и раскладкопроблем не имею. Даже знаки препинания, которые есть на русской раскладке, уже ввожу на английской, настолько это удобно.

bodqhrohro_promo ()

Как реализовать работу с кириллицей в vim?

Во-первых, точно так же, как в ГНУ Емаксе.

а как же переставить её на человеческое сочетание типа Alt+Shift
человеческое сочетание
Alt+Shift

/0

а как же переставить её на человеческое сочетание

С помощью вашего оконного диспетчера, очевидно. Вы не указали, какой он у вас, а потому сказать подробнее нечего.

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

Да меня добивает подобное в MPV
там в принципе невозможно вводить текст, а есть только хоткеи.

Ну так прикажите, чтобы раскладка в его окнах была строго американской — какие проблемы?

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

Я согласен на выбрасывание вима, но только если взамен будет создан современый редактор основанный на его идеях

У Вима есть идеи? По-моему это просто образец программы типа «некогда думать, писать надо».

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

Я не знаю как это сделать, второе это костыль, проблема не только на линуксе же.
Это просто плохой дизайн из разряда: ой ну других раскладок кроме US не бывает же, я погромист и код только пишу – это и тупо и некрасиво.

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

В KDE, например, при настройке переключения раскладки можно указать, чтобы раскладка запоминалась для каждого окна. То есть, если у тебя по умолчанию не кириллица, а в MPV ты её не переключал, то она там и не переключится на кириллицу.

grem ★★★★★ ()
Последнее исправление: grem (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.