Copy-Paste в xfce4-терміналі додає 0 ~ і 1 ~


105

Я використовую xubuntu 14.04, 64 біт. Раз у раз, коли я намагаюся вставити якийсь текст у xfce4-terminal, замість очікуваного тексту, який слід вставити, він оточений 0~і 1~, наприклад:

0~mvn clean install1~

Текст повинен бути таким mvn clean install- я це підтвердив, вставивши вміст у різні інші програми (gnome-terminal, gedit та інші). Кожна програма правильно вставляє вміст, крім xfce4-терміналу. В Інтернеті я не зміг знайти жодних посилань на це (на жаль, на сайті google.com важко шукати текст із спеціальними символами ...). Чому це відбувається?


Як ви склеюєте? Середній клік чи щось інше?
Селада

1
Я перепробував кожен метод: середнє клацання, клацання правою кнопкою миші та вибрав опцію вставити, ctrl + shift + v. Коли з'являються символи 0 ~ і 1 ~, не має значення, який метод вставки я використовую.
ботисмарій

Відповіді:


144

Проблема полягає в тому, що ваш термінал перебуває в режимі скореного вставки, але, здається, не підтримує його належним чином. Проблема була виправлена ​​у VTE, але xfce4-термінал все ще використовує стару та непідтримувану її версію.

Ви можете спробувати тимчасово вимкнути режим скобової скоби, скориставшись:

printf "\e[?2004l"

4
Якщо ви не завжди можете його відтворити, можливо, ви запустили якусь програму, яка ввімкнула режим вставки, а потім вона вийшла з ладу, тому не вдалося вимкнути її перед виходом.
kyrias

4
Дивовижне, дякую! Я боровся з цим питанням вже більше року. Чи можливо повністю відключити цей "режим із скобою вставкою"? До речі, хто реалізує такі божевільні речі? ;)
Адам Романек

4
це залежить від вашого терміналу. І це дійсно корисна функція, оскільки дає додаткам знати, чи щось було введено чи вставлено. Для одного, weechat, програма IRC, використовує його, щоб запитати, чи хочете ви надіслати багаторядкові вставки, які не могли обійтися без режиму скріпленої скоби, оскільки тоді не було б можливості дізнатися, чи вводив користувач рядки або ні.
kyrias

1
Як я можу знайти, яка програма возиться в режимі скореного вставки?
aviggiano

3
Для дистрибутивів на базі Ubuntu ви можете спробувати встановити виправлену версію пакету "vte" з startpad.net/~adrozdoff/+archive/ubuntu/vte
Денис Бахарев

78

Моя проблема була пов’язана із погано закритим баш-сесією. Тож запущена команда resetв моєму терміналі вирішила її негайно.


2
Це працювало для мене.
AFP_555

І це працювало на мене!
tomd

Сталося з Ubuntu 16.04, використовуючи термінатор. скидання працювало!
користувач1270710

Мій термінатор робив те саме, також працював з Ubuntu 16.04. Працюючи resetна моєму ssh-з'єднанні, це виправлено.
Марчелло Гречі Лінс

23

У мене була така ж проблема, вона виникає після використання vi.

Моє вирішення було додано set t_BE= до мого .vimrcфайлу.

Для довідки , це робить t_BE:

t_BE увімкніть режим скореного вставки


7
Саме це було причиною, дякую! У моєму випадку це почалося, коли я перейшов на VIM 8
rgerganov

1
Ви можете, будь ласка, пояснити, що встановлює t_BE = і чому це вирішує проблему?
Франческо Боккардо

7

Така поведінка виникає, коли термінальний емулятор застряг у режимі скореного вставки .

Зазвичай це відбувається, коли програма нечисто закривається (виходить з ладу або є помилкою).

Ще однією причиною того, що явище часто виникає, є помилка у старих версіях VTE (VTE - віджет термінальної емуляції під gnome-terminalта xfce4-terminalта багато інших), який викликається певними діями в певних утилітах, наприклад, перемиканням панелей у Midnight Commander .

Щоб побачити, чи виправлена ​​ця помилка в емуляторі терміналу на базі VTE: Виконати echo -ne '\e[>c', в неї буде вставлено кілька символів, як ніби ви їх ввели. Якщо середнє число 3602більше або більше, вищезгадана стара помилка VTE більше не присутня для вас. Якщо кількість менше, ніж це, VTE все ж впливає і застрягає в режимі скореної пасти частіше, ніж слід.

Щоб побачити, чи певний емулятор терміналу фіксований у певному дистрибутиві Ubuntu, перевірте його залежність від пакети.ubuntu.com . libvte-2.91-0це добре. libvte-2.90-9добре лише, якщо фактична версія цього пакета 0,36,2 або новіша, і libvte9це погано. Зокрема, xfce4-terminalце баггі в Ксеніалі, а виправлений у Зесті.


1

Це може не стосуватися безпосередньо вашої проблеми, але я виявив, що цей симптом, ймовірно, в моєму випадку викликаний моїм редактором 'mcedit' (Midnight Commander)

Щоб полегшити проблему з помилками, я додав у свій .bashrc файл наступну функцію:

### vvv 'function mcedit' is a fix-up for the ~0/~1 paste problem
function mcedit() { command mcedit $@ ; printf '\e[?2004l' ; }

Тоді 'source .bashrc'

Тепер кожного разу, коли я виконую 'mcedit', він автоматично додає 'printf' \ e [? 2004l "', коли я закриваю, щоб скинути" Режим вставленої скоби "

Для мене працює, YMMV.

Цей же підхід може бути використаний з програмою vi, vim, nano або будь-якою іншою програмою, що не поводиться.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.