On 2015-12-20, Oleksandr Gavenko wrote: > Я предпочитаю вместо набора вручную вставлять готовый текст по клику средней > кнопкой мыши или Shift+Ins в xterm или емаксовский M-x term. > > При переносе текста из Firefox/Evince/etc иногда вкрадывается мусор. Иногда > путаюсь что в primary и что в clipboard. > > Я проверяю что вставилось, но если в последовательности есть \n, то мусор > отправляется в bash и остается надеятся что беды не случится. > > Можно все скопированое пропускать черер редактор на выверку, но это хлопотно. > > В Bash даже есть возможность отредактировать команду во внешнем редакторе по > ~/.inputrc: > > $if Bash > "\C-x\C-e": edit-and-execute-command > $endif > > Можно ли как то запретить вставку текста с переносом строки в Xterm? Или > ограничить текст до первого переноса? > Тут говорится что может быть особый клиент, промежуточное звено между приложением, предоставляющим выдеелние и копирующим приложением:
http://tronche.com/gui/x/icccm/sec-2.html#s-2.6.1 Полистал "man 1 xclipboard", там упоминается возможность интерграции с xterm. Перелистал "man 1 xterm", комбинациям клавиш можно назначать предопределенные действия. Например: *VT100*translations: #override Meta <KeyPress> Insert:insert-formatted("Hello!", SELECT) по Alt+Ins будет вставлять фиксированую строку. Есть команда exec-formatted(), она выполняет внешнюю команду. Есть команда insert-selection(PRIMARY). Она вставляет из выбраного буфера содержимое в xterm. Через pipe можно обработать выделенное. Команды можно прописать поряд. Итого в ~/.Xdefaults: *VT100*translations: #override Meta <KeyPress> Insert: exec-formatted("sh -c 'echo xxx | xsel -p; xmessage ok'", SELECT) insert-selection(PRIMARY) После: $ xrdb -merge .Xdefaults как бы результат есть (xmessage появляется, содержимое PRIMARY вставляется). Но содержимое PRIMARY не изменяется, а ожижаю там появление строки "xxx". Если бы зарабтало, то вставил бы скрипт: sh -c 'xset -o -b | read line; xset -c -b; printf \"$line\" | xset -i -b' Но есть сомнения - exec-formatted выполняет команду асинхронно. Нужна команда, вставляющая результат выполнения команды, такого не обнаружил... -- Best regards!