[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Продвинутая работа с клипбордом



Привет.

Я тут некоторое время назад в 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: