LINUX.ORG.RU

mcedit и иксовый буфер обмена


0

1

В редакторе sandy реализована интересная фича: интеграция с иксовыми приложениями осуществляется вызовом внешних утилит. Наличие иксов определяется по тому, установлена ли переменная DISPLAY. Например, для передачи в иксы содержимого выделенной области текста, каждый раз, когда пользователь изменяет выделение, вызывается утилита xsel.

Предлагаю в mcedit добавить возможность вызывать внешнюю команду каждый раз, когда пользователь изменяет выделение текста, и передавать ей в stdin содержимое выделеной области.

cast Slavaz

Ответ на: комментарий от Eddy_Em

Тормозить же будет.

Не будет. Поставить таймер: если выделение изменилось и больше не изменяется в течение 1 секунды, вызываем команду.

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

man mc
/clipboard_store
/clipboard_paste

Оно срабатывает по хоткеям:

[editor]
Store = ctrl-insert
Paste = shift-insert
Cut = shift-delete

Иксы могут перехватывать эти хоткеи и они просто не передаются терминалу как ESC-последовательности. В этом случае лучше переопределить на новые клавиши.

P.S. вместо непосредственного указания xclip можно указать свой собственный скрипт, который распознает, есть ли иксы... или есть ли сеть и тогда, например, задействует curl/wget для реализации некоего хостонезависимого буфера обмена :)

Slavaz ★★★★★
()

А, извиняюсь, недопонял.

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

Лично я смысла не вижу в этом. Но с другой стороны, нет и рычага для осуществления такого. Я подразумеваю, что у нас действие «выделение текста»- это функция, а не событие. То есть, нельзя сказать, что при начале или конце выделения надо сделать определённые вещи. Лично у меня давно зреет план по масштабному внедрению событийной модели. тогда можно будет навешивать обработчики на определённые события. Сторонними обработчиками. В плагинах :). Короче, сейчас к этой фиче почти ничего не готово, а внедрять её в существующий код и тем самым «сращивать» её с кодовой базой не хочется.

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