LINUX.ORG.RU
ФорумTalks

Зачем в vim/emacs собственный механизм переключения раскладок?

 , , ,


1

4

Здесь много power users, которые используют эти редакторы много лет. Вот ответьте мне господа:

1. Зачем в emacs/vim нужен собственный механизм переключения раскладок?

2. Почему в 2015 г. эти редакторы не умеют из коробки работать с общесистемной переключалкой (хотя бы в виде опции)?

3. Доколе? Неужели среди разработчиков нет людей которые осознают эту проблему?

★★

Последнее исправление: trancefer (всего исправлений: 1)

Ты явно что-то делаешь не так.

v9lij ★★★★★
()

Я таки вас не понял.

У меня где-то было прописано в .xinitrc что-то типа

setxkbmap -layout de,ru -variant dvorak,legacy -option grp:caps_toggle
И в vim, и в emacs всё прекрасно переключается.

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

Не знаю что имеет тс в виду, но хотелось бы, чтобы в коммандном режиме автоматически включалась латиница.

invy ★★★★★
()

Ты наверно взял чей то конфиг который игнорирует системную раскладку

Dron ★★★★★
()

пользоваться системной переключалкой неудобно

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

но хотелось бы, чтобы в коммандном режиме автоматически включалась латиница.

Это просто. Кстати, все эти кривые хаки в стиле set keymap=russian-jcukenwin и set langmap=ФИСВУАП...  — трешак и не работают так, как нужно.

Есть только один единственный идеально работающий способ («настроил и забыл навсегда»):

  • ставишь xkb-switch в систему (ебилд есть, если на генте: x11-misc/xkb-switch)
  • ставишь плагин vim-xkbswitch в вим
  • добавляешь настройку (у меня vim-plug пл.менджер):
    Plug 'lyokha/vim-xkbswitch'
    let g:XkbSwitchEnabled       = 1
    let g:XkbSwitchLib           = '/usr/lib64/libxkbswitch.so'
    let g:XkbSwitchIMappings     = ['ru']
    let g:XkbSwitchSkipIMappings = {'*' : ['[', ']', '{', '}', "'", '<', '>', ',', '.', '"']}
    

    И песня, работает четко: на текущей кириллической раскладке в insert mode при выходе в normal mode — автоматически переключает на английскую раскладку и автоматически ставит кириллическую раскладку при возвращении в insert mode. Все остальные способы — треш и потеря времени/нервов.
kep
()

Не совсем понятно, на что ты жалуешься. Если говорить про vim — то это консольный редактор, как черт возьми ему без иксов понять, на какой ты раскладке? И зачем вообще ему об этом знать? С основным языком планеты земля, на котором разрабатываются приложения — никаких проблем нет, а остальное уже проблемы локальных комьюнити, одно из которых, в данном случае твоих соплеменников — уже решило эту проблему вышеуказанным мною способом.

kep
()

2. Почему в 2015 г. эти редакторы не умеют из коробки работать с общесистемной переключалкой (хотя бы в виде опции)?

Проверил и в emacs, и в vim. Все работает.

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

Именно. Очень мало разработчиков, которые могут осознать несуществующую проблему.

Deleted
()

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

DELIRIUM ☆☆☆☆☆
()

Проведём мысленный эксперимент, срисованный с жестокой реальности: зайди с «уютного» виндоуса на linux через xrdp, там, за локальным Xvnc запусти firefox, оттуда http-й на lights-out-manager, где java-applet нарисует консоль машины, и попытайся объяснить нам, в каком месте этого безобразия должны появиться нужные в файлах последней иероглифы?

Могу спорить, что единственным надёжным вариантом размещения этой функции окажется именно последнее звено. А какое самое последнее звено в интерактивной работе с текстом, если не текстовый редактор?

DonkeyHot ★★★★★
()
Последнее исправление: DonkeyHot (всего исправлений: 1)
Ответ на: комментарий от DELIRIUM

зачем что-то писать на русском в vim.

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

kep
()

редакторы не умеют из коробки работать с общесистемной переключалкой

Дата регистрации: 23.10.2009

ты вроде должен был застать проблемы с переключалками

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

А, ну я для веба не пишу, я в основном серверную часть на крестах. Так что не подумал об этом. Я думал, веб-кодеры обычно всякие IDE предпочитают.

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

веб-разработчикам IDE тем более не нужен ни разу.

kep
()

Писал на русском в Emacs, когда активно использовал emacs-jabber. Больше не использую, только заметки пишу время от времени, как черновики. Но это 5-7% от всего времени в Emacs

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

чтобы в коммандном режиме автоматически включалась латиница

Чтобы перейти в командный режим - всё равно надо нажать ":". Вы нажимаете его в русской раскладке?

Xellos ★★★★★
()

1. Зачем в emacs/vim нужен собственный механизм переключения раскладок?

а) наследие тяжких времён б) независимость от иксов

2. Почему в 2015 г. эти редакторы не умеют из коробки работать с общесистемной переключалкой (хотя бы в виде опции)?

емакс точно умеет, другое дело в том, что шорткаты перестают работать, но для этого уже тоже давно придумали костыль

3. Доколе? Неужели среди разработчиков нет людей которые осознают эту проблему?

Думается мне, что большинство разработчиков используют латиницу.

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

Зачем там руссиш?

В 99% случаев незачем. Но об этом не знает DE (или setxkbmap). Частично спасает переключение расскладки привязанное к отдельным окнам.

invy ★★★★★
()

В vim'е это позволяет в командном и визуальном режиме нормально работать, а в режиме редактирования писать текст на другом языке. Оч. удобно.

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

Я лично всегда нажимаю ":" латиницей. И раскладка у меня не меняется кнопкой ":".

Xellos ★★★★★
()

1. Зачем в emacs/vim нужен собственный механизм переключения раскладок?

Про емакс не знаю, а в виме управляют символами. В свою очередь одной и той же кнопке на клавиатуре соответствуют несколько символов, в зависимости от текущей раскладки.

2. Почему в 2015 г. эти редакторы не умеют из коробки работать с общесистемной переключалкой (хотя бы в виде опции)?

А что такое ощесистемная переключалка? Я использую kbdd, до этого использовал xxkb.

3. Доколе? Неужели среди разработчиков нет людей которые осознают эту проблему?

Что за проблема?

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

Не знаю что имеет тс в виду, но хотелось бы, чтобы в коммандном режиме автоматически включалась латиница.

Я делаю так (переключатель kbdd):

autocmd InsertLeave *
      \ if has('unix') && &term == 'builtin_gui' |
      \   silent !qdbus ru.gentoo.KbddService /ru/gentoo/KbddService ru.gentoo.kbdd.set_layout 0 >/dev/null |
      \ endif

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

В скайп (бывшие коллеги по работе) и телеграм (бывшие одногруппники). Джаббер-аудитория, увы, осталась в джаббере

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

Тот который вы используете при работе со всеми прочими программами. Для Linux/X11 - xkb.

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

Я не жалуюсь, мне интересно. Под «не умеют работать с общесистемной переключалкой» я подразумеваю что при переключении раскладки на не английскую средствами ОС, в обоих редакторах перестают работать хоткеи.

vim — то это консольный редактор

GNU nano тоже консольный редактор, но хоткеи в нем таки работают независимо от раскладки. А bash наверное самая консольная из консольных программ, и хоткеи в ней также работают независимо от раскладки.

trancefer ★★
() автор топика

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

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

другое дело в том, что шорткаты перестают работать, но для этого уже тоже давно придумали костыль

Вот именно что костыли, которые почему то не требуются в других программах - что консольных что с GUI.

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

Ну vim вроде на лавры ОС не претендовал никогда.

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

Для LaTeX есть LyX, а за комментарии не на английском надо подвешивать за яйки.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от upcFrost

ты вроде должен был застать проблемы с переключалками

А их уже починили? :)

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

А как при этом способе искать(f/F, //?) по тексту на русском? Постоянно раскладку переключать?

ну а как по-другому-то? Не совсем понятно, что смущает, ведь никакого другого способа не может существовать. Ты, скорее всего, не понял, как работает вышеуказанный способ, лучше попробовать и все вопросы отпадут.

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

С langmap такой проблемы нет. Наверное, в т.ч. поэтому он и существует. Но и переключать раскладку отдельным кнопкосочетанием тоже не айс. Так что тут каждый для себя выбирает меньшее из двух зол.

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

как черт возьми ему без иксов понять, на какой ты раскладке?

С разморозкой, xkb давным давно в консоли работает, а до него другие костыли были.

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

Как это зачем? А в чём тогда плейнтекст редактировать? Я в виме пишу лекции, код, конфиги. Прикажете для этого какое-то CUA-говно использовать, ещё и требующее иксов для работы?

contra_sperm_spero
()

Чего? Раскладка либо на окно действует (гном-терминал, путти, etc), либо на весь ДЕ. О чем ты?

drull ★☆☆☆
()

Никогда не возникало проблемы как переключить раскладку в вим/неовим/емакс. Переключаю точно так же как везде, двумя шифтами, настроено через setxkbmap.

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

Как пример: Ковыряние и исправление xml с данными репликации. бывает что и руками приходится править, данные могут быть вполне на русском. А так мало ли для чего, я vim вообще использую для всего связанного с plain-текстом.

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