Продвинутая работа с клипбордом
Привет.
Я тут некоторое время назад в jessie наткнулся на то, что emacs теперь
по умолчанию при копировании работает не с primary selection, а с
clipboard. (Примечание: тем, кто сходу не понял, о чем я, просьба не
беспокоиться и дальше не читать, и тем более не отвечать.)
Сперва чертыхнувшись, я, во-первых, без труда нагуглил, как "чинить", а
во-вторых, помня о разнице между "удобно" и "привычно", решил подумать,
не правы ли они, часом. И "чинить" не стал. И вот у меня появилось
желание изложить модель работы и послушать мнения и если есть, решения,
коллег, тоже читавших Раскина :)
Чем удобна иксовая модель работы с выделением: выделил - и вот выделение
готово, больше ничего делать не надо. Переместил мышку в целевое окно,
прицелился (а в случае с эмуляторами терминалов даже и не прицелился),
ткнул среднюю кнопку - вставилось. Минимум жестов.
Чем неудобна: неудобно вставлять в уже заполненное текстовое поле, если
хотелось его заменить (в основном я с этим натыкаюсь либо на заполненное
по историческим причинам поле ввода в браузере, либо на поисковую, реже
адресную строку в том же браузере): приходится предыдущее состояние
удалять путем зажимания BackSpace и/или Del, ибо при попытке
double/triple-click + BackSpace уже готовое выделение, которое хотелось
вставить, потеряется. В этом смысле CUA'шная модель работы с clipboard
удобнее, конечно.
Второе неудобство - если выйти из программы, в которой было сделано
выделение, оно теряется. Кажется, я на это натыкался даже при выходе из
терминальных программ, хотя сейчас не воспроизводится, и вообще было бы
странно. Однако, натыкался.
Третье - увы, средняя кнопка встречается все реже, а эмуляция ее
одновременным нажатием на первые две требует совершенно лишней в этом
месте концентрации... Впрочем, на новом ноутбуке у меня и левая с
правой отсутствуют - в смысле, являются частью тачпада, что приводит к
смещению курсора в момент нажатия на кнопку :( Так что я бы не
рассматривал это как существенное неудобство.
И тем не менее, сейчас во множестве (ну, под виндой во множестве, но у
нас в дистрибутиве вроде тоже есть) в качестве дополнения к модели CUA
плодятся clipboard manager'ы, которые умеют хранить историю записанного
в clipboard и позволяют вставить не только последнее, что было туда
засунуто.
Чего бы мне, по ощущениям, хотелось:
- чтобы к выделению не надо было добавлять явную операцию помещения в
clipboard (опционально; может быть, я зря этого хочу, и стоило бы
переучиться, но тогда надо обучать этому urxvt/xterm)
- соответственно, чтобы при засовывании в clipboard выделенное попадало
в историю clipboard manager'а
- чтобы при вставке из clipboard подскакивал clipboard manager и сразу
предлагал недавнюю историю; при этом чтобы он эргономично управлялся с
клавиатуры
Для начала покритикуйте хотелки, я вовсе не уверен, что они хороши.
Потом, может, кто чего умного подскажет в смысле реализации? Gnome- и
KDE-based решения, извините, не предлагать.
Я вот думаю, может, оставить работу с выделением так, как она есть, а
сверху поручить window manager'у (у меня xmonad, он довольно хорошо
настраивается) реагировать на один жест засовыванием primary selection в
clipboard и в историю, а на другой - предложением этой истории с
последующим paste выбранного в текущее окно?
Правда, придется еще потанцевать на тему того, попадает ли у emacs24-gtk
выделенное сразу в primary selection, или тоже еще надо попинать...
Reply to: