Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Misha Verbitsky ([info]tiphareth)
@ 2017-03-28 20:45:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение: sick
Музыка:Tangerine Dream - Thief (Extended Edition)
Entry tags:emacs, linux, unicode

Копипаст из Емакса в Хтерм с локалью koi8-r
Есть проблема, прошу помощи.
Раньше я ее решал путем установки
Emacs 22 либо Emacs 21 из оверлея, но сейчас чего-то
не могу найти таких оверлеев, и у меня пока что
Emacs 24.

Внутренняя кодировка Емакса у меня koi8-r,
локаль
LANG="C"
LC_COLLATE="ru_RU.koi8r"
LC_CTYPE="ru_RU.koi8r"

Мне нужно копировать из Емакса в окно xterm
(локаль koi8-r) русские буквы, и копировать
из окна Firefox/Chrome в Емакс русские буквы.
В Emacs 21/22 она решается следующей странной
штукой (выяснил экспериментально):

(set-terminal-coding-system 'koi8-r-unix)
(set-keyboard-coding-system 'koi8-r-unix)
(set-selection-coding-system 'x-ctext-with-extensions)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))

В новой версии это не работает ни на копипаст в емакс
(печатает кракозябры), ни на копипаст из емакса
(не печатает ничего). Можно сделать
(set-clipboard-coding-system 'koi8-r-unix)
и она будет хорошо передавать из емакса в хтерм,
не будет передавать ничего из xterm в емакс, и
будет передавать кракозябры из Firefox в емакс.

Если сделать
(set-clipboard-coding-system 'utf-8-unix)
она не передает ничего из хтерм и в хтерм,
и передает текст из Firefox/Chrome в Емакс
в emacs как надо.

Копипаст из Емакса в Firefox работает как надо
в обоих случаях

Меня бы наверное устроило, если бы
(set-clipboard-coding-system 'utf-8-unix)
работало на копипаст в, а
(set-clipboard-coding-system 'koi8-r-unix)
на копипаст из, но каждый раз переключать
это все-таки чересчур.

В общем, прошу совета, как эту бяку настроить,
либо адреса gentoo-overlay с емаксом 21 или 22.

В целом - емакс от версии к версии все хуже и хуже,
все гаже и гаже, и никакого конца-краю этому нет.
Самый лучший был 19 (но он с utf-8 совсем не работает,
так что и он не годится).

Такие дела
Миша



(Читать комментарии) - (Добавить комментарий)


[info]tiphareth
2017-03-29 02:54 (ссылка)
строго говоря, у меня aterm
сейчас откомпилирую xterm и посмотрю

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]weary
2017-03-29 16:51 (ссылка)
А емакс используется гуёвый (если да, то с каким тулкитом, gtk2/3, athena итд) или консольный? И копирование делается через встроенные средства (C-y/M-w) или мышкой?

Там просто разные механизмы используются (работа с буфером в линаксе это вообще тот ещё ад). В некоторых случаях емакс вообще не в курсе, как с него копируют, а в некоторых случаях всё зависит от терминала, в котором емакс запущен.

Для работы с копированием можно, например, переопределить interprogram-cut-function и interprogram-paste-function, но они срабатывают только на встроенном kill/yank, и при вставке средней кнопкой не выполняются.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tiphareth
2017-03-29 19:23 (ссылка)
gtk2, мышью

>Для работы с копированием можно, например,
>переопределить interprogram-cut-function и interprogram-paste-function

я пробовал, да, действительно - при вставке средней кнопкой не выполняются

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]weary
2017-03-30 03:45 (ссылка)
Да, работает не очень.

Опытным путём получилось в похожих настройках (только что емакс с gtk3) получить рабочий копипаст во все стороны в xterm только при указании ttf-шрифта и -lc (xterm -fn 7x13 -fa "Liberation Mono:size=10:antialias=false" -lc), иначе будет ###.

В aterm ничего приличного не получается, а вот rxvt заработал сразу и без настроек (rxvt-unicode 9.22). Авторы aterm, к слову, пишут что "aterm is deprecated and in a maintenance mode only; there will be no further updates. Use rxvt-unicode instead". Наверное это был бы лучший вариант, терминал там сам по себе вполне неплохой.

Если же лазить по различным внутренностям емакса, то что-то одно перестаёт работать.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tiphareth
2017-03-30 06:37 (ссылка)
Великолепно! Поменял во всех конфигах aterm на urxvt
и счастлив, все работает лучше некуда
осталось убедить емакс-24 убрать сраное меню, команды
(menu-bar-mode nil)
(tool-bar-mode nil)
в новой версии почему-то не работают

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tiphareth
2017-03-30 06:39 (ссылка)
а, нашел: надо
(menu-bar-mode -1)
(tool-bar-mode -1)

(Ответить) (Уровень выше)


(Читать комментарии) -