Copy-Paste trong xfce4-terminal thêm 0 ~ và 1 ~


105

Tôi sử dụng xubfox 14.04, 64 bit. Thỉnh thoảng, khi tôi cố gắng dán một số văn bản trong xfce4-terminal, thay vì văn bản dự kiến ​​sẽ được dán, nó được bao quanh bởi 0~1~, chẳng hạn như:

0~mvn clean install1~

Văn bản được cho là mvn clean install- Tôi đã xác minh điều này bằng cách dán nội dung trong nhiều ứng dụng khác (gnome-terminal, gedit và các ứng dụng khác). Mọi ứng dụng dán chính xác nội dung, ngoại trừ xfce4-terminal. Tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào cho việc này trên internet (thật không may, thật khó để tìm kiếm văn bản có các ký tự đặc biệt trên google.com ...). Lý do tại sao điều này xảy ra?


Bạn đang dán như thế nào? Nhấp chuột giữa, hoặc cái gì khác?
Celada

1
Tôi đã thử mọi phương pháp: nhấp chuột giữa, nhấp chuột phải và chọn tùy chọn dán, ctrl + shift + v. Khi các ký tự 0 ~ và 1 ~ xuất hiện, tôi sử dụng phương pháp dán nào không quan trọng.
botismarius

Câu trả lời:


144

Vấn đề là thiết bị đầu cuối của bạn ở chế độ dán có dấu ngoặc, nhưng dường như không hỗ trợ đúng cách. Sự cố đã được khắc phục trong VTE, nhưng xfce4-terminal vẫn đang sử dụng phiên bản cũ và không rõ ràng của nó.

Bạn có thể thử tạm thời tắt chế độ dán dấu ngoặc bằng cách sử dụng:

printf "\e[?2004l"

4
Nếu bạn không thể luôn sao chép thì có thể bạn đang chạy một số chương trình kích hoạt chế độ dán có dấu ngoặc và sau đó nó bị hỏng, do đó không thể tắt nó trước khi thoát.
kyrias

4
Thật sự cảm ơn! Tôi đã vật lộn với vấn đề này trong hơn một năm. Có thể vô hiệu hóa hoàn toàn "chế độ dán khung" này không? BTW, ai thực hiện những điều điên rồ như vậy? ;)
Adam Romanek

4
nó phụ thuộc vào thiết bị đầu cuối của bạn. Và nó là một tính năng thực sự hữu ích, vì nó cho phép các ứng dụng biết liệu một cái gì đó đã được nhập hoặc dán. Đối với một, weechat, một chương trình IRC, sử dụng nó để hỏi bạn có muốn gửi các loại bột nhão nhiều dòng không, nếu không có chế độ dán có dấu ngoặc, thì từ đó sẽ không có cách nào để biết người dùng có gõ các dòng hay không không phải.
kyrias

1
Làm thế nào tôi có thể tìm thấy chương trình nào gây rối với chế độ dán ngoặc?
aviggiano

3
Đối với các bản phân phối dựa trên Ubuntu, bạn có thể thử cài đặt phiên bản vá của gói 'vte' từ launchpad.net/~adrozdoff/+archive/ubfox/vte
Denis Bakharev

78

Vấn đề của tôi là do một phiên bash đóng cửa tồi. Vì vậy, chạy lệnh resettrong thiết bị đầu cuối của tôi đã giải quyết nó ngay lập tức.


2
Điều này làm việc cho tôi.
AFP_555

Và nó đã làm việc cho tôi!
tomd

Đã xảy ra với Ubuntu 16.04, sử dụng terminator. thiết lập lại làm việc!
dùng1270710

Kẻ hủy diệt của tôi cũng làm như vậy, cũng chạy Ubuntu 16.04. Chạy resettrên kết nối ssh của tôi đã sửa nó.
Marcello Grechi vào

23

Tôi đã có cùng một vấn đề, nó xảy ra sau khi tôi sử dụng vi.

Của tôi đã được giải quyết bằng cách thêm set t_BE= vào .vimrctập tin của tôi .

Để tham khảo , đây là những gì t_BE làm:

t_BE kích hoạt chế độ dán khung


7
Đó chính xác là nguyên nhân, cảm ơn! Trong trường hợp của tôi, nó bắt đầu khi tôi nâng cấp lên VIM 8
rgerganov

1
bạn có thể vui lòng giải thích tập hợp t_BE = không và tại sao nó giải quyết vấn đề?
Francesco Boccardo

7

Hành vi này xảy ra khi trình giả lập thiết bị đầu cuối bị kẹt trong chế độ dán dấu ngoặc .

Điều này thường xảy ra khi một ứng dụng thoát không sạch sẽ (gặp sự cố hoặc bị lỗi).

Một lý do cho hiện tượng xảy ra thường xuyên là một lỗi trong phiên bản cũ của VTE (VTE là widget thi đua terminal dưới gnome-terminalxfce4-terminalvà nhiều hơn nữa) mà được kích hoạt bởi những hành động nhất định trong tiện ích nhất định như chuyển đổi qua lại các tấm trong Midnight Commander .

Để xem lỗi này có được sửa trong trình giả lập thiết bị đầu cuối dựa trên VTE mà bạn đang chạy hay không: Thực thi echo -ne '\e[>c', điều này sẽ chèn một vài ký tự như thể bạn đã gõ chúng. Nếu số ở giữa là 3602hoặc lớn hơn, lỗi VTE cũ đã nói ở trên không còn tồn tại cho bạn nữa. Nếu số lượng nhỏ hơn số đó, VTE vẫn bị ảnh hưởng và bị kẹt trong chế độ dán khung thường xuyên hơn mức cần thiết.

Để xem liệu trình giả lập thiết bị đầu cuối nào đó có được sửa trong một bản phân phối Ubuntu nhất định hay không, hãy kiểm tra các phụ thuộc của nó trên gói.ubfox.com . libvte-2.91-0tốt. libvte-2.90-9chỉ tốt nếu phiên bản thực tế của gói đó là 0,36.2 hoặc mới hơn và libvte9xấu. Cụ thể, xfce4-terminallà lỗi trong Xenial và được sửa trong Zesty.


1

Điều này có thể không áp dụng trực tiếp cho vấn đề của bạn, nhưng tôi thấy triệu chứng này có lẽ, trong trường hợp của tôi, là do biên tập viên của tôi 'mcedit' (Chỉ huy nửa đêm) gây ra

Để giảm bớt sự cố lỗi, tôi đã thêm chức năng sau vào tệp .bashrc của mình:

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

Sau đó, 'nguồn .bashrc'

Bây giờ mỗi khi tôi thực hiện 'mcedit', nó sẽ tự động thêm 'printf "\ e [? 2004l"' khi tôi đóng để đặt lại "Chế độ dán có khung"

Làm việc cho tôi, YMMV.

Cách tiếp cận tương tự có thể được sử dụng với vi, vim, nano hoặc bất kỳ chương trình xử lý sai nào khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.