Điều này xảy ra cho dù tôi sử dụng ctrl + shift + v hoặc dán từ menu chuột phải.
Làm thế nào để tôi thực hiện hành vi này dừng lại?
Điều này xảy ra cho dù tôi sử dụng ctrl + shift + v hoặc dán từ menu chuột phải.
Làm thế nào để tôi thực hiện hành vi này dừng lại?
Câu trả lời:
Đừng sao chép nhiều dòng văn bản, để dán. Tôi gần như có thể đảm bảo bạn chỉ cần sao chép phần cuối của dòng. Nếu bạn nhấp ba lần để sao chép dòng mã bạn đang dán, bạn sẽ nhận được dòng mới ở cuối dòng. Nếu bạn muốn chắc chắn, đó thực sự là vấn đề, sau đó sao chép toàn bộ dòng, ngoại trừ chữ cái / chữ số cuối cùng, và xem nếu dán cũng bao gồm một dòng mới.
Văn bản bạn đang dán bao gồm một dòng mới. Khi bạn dán một dòng mới, trình bao chạy trong thiết bị đầu cuối sẽ thấy rằng khi nhấn Enter, vì vậy nó sẽ thực thi lệnh.
Hoạt động dán được thực hiện bởi trình giả lập thiết bị đầu cuối; nó chuyển văn bản đã dán vào ứng dụng đang chạy trong thiết bị đầu cuối, giống như cách nó chuyển văn bản được người dùng nhập vào. Xem Làm thế nào để đầu vào bàn phím và đầu ra văn bản hoạt động? để biết thêm thông tin về cách hoạt động của đầu vào. Ứng dụng (ở đây, trình bao) không có cách nào để phân biệt giữa tổ hợp phím và thao tác dán.
Nhiều trình giả lập thiết bị đầu cuối những ngày này hỗ trợ dán khung . Trong chế độ dán có dấu ngoặc, ứng dụng có thể phân biệt thao tác dán với tổ hợp phím. Dán khung chỉ hữu ích nếu ứng dụng thực hiện một cái gì đó khác với văn bản được dán, do đó, nó được kích hoạt bằng cách hỗ trợ các ứng dụng, nó không phải là thứ được cấu hình bởi người dùng trình giả lập thiết bị đầu cuối.
Zsh 5.1 (đã xuất hiện vài tuần trước, do đó chưa có sẵn trong hầu hết các bản phân phối) thêm hỗ trợ cho chế độ dán có dấu ngoặc. Khi bạn dán văn bản, nó chỉ được chèn vào dòng lệnh và bạn có thể chỉnh sửa nó trước khi nhấn Enterđể thực thi dòng lệnh.
Người dùng oh-my-zsh có thể sử dụng plugin dán an toàn ngay cả trong các phiên bản trước của zsh.
Một điều khác bạn có thể làm trong zsh là làm cho nó chèn vùng chọn dưới dạng một chuỗi, với trích dẫn (dưới dạng dấu gạch chéo ngược trước mỗi ký tự đặc biệt shell như khoảng trắng). Nhập `xsel`
để có được lựa chọn chính (chọn chuột tự động) hoặc `xsel -b`
để lấy nội dung trong bảng tạm (văn bản được sao chép bằng Ctrl+ C), sau đó nhấn Tab.
Nếu bạn có phiên bản zsh cũ hơn và bạn muốn chèn nội dung clipboard mà không trích dẫn, bạn có thể xác định chức năng chèn lựa chọn.
function zle_insert_x_selection {
LBUFFER+=$(xsel ${NUMERIC+-b} -o </dev/null)
}
zle -N zle_insert_x_selection
bindkey '\e\C-v' zle_insert_x_selection
Với cái này trong bạn .zshrc
, bạn có thể nhấn Ctrl+ Alt+ Vđể chèn lựa chọn chính hoặc Ctrl+ U Ctrl+ Alt+ Vđể chèn nội dung clipboard. Chúng được chèn trước con trỏ, không thay đổi trừ khi không có dòng mới. Xem Chia sẻ bảng tạm giữa bash và X11 để biết nội dung tương tự trong bash.
Nếu bạn đang sử dụng bash làm vỏ của mình, bạn có thể nhấn Ctrl-X Ctrl-E
để hiển thị trình chỉnh sửa (được xác định bởi $ VISUAL hoặc $ EDITOR, ví dụ vi
hoặc có lẽ nano
).
Sau đó, bạn có thể dán các lệnh của mình vào đó chính xác như bạn muốn nếu bạn đang chỉnh sửa một tệp. Chúng sẽ được thực thi nếu bạn lưu và thoát. Hoặc hủy bỏ nếu bạn bỏ mà không lưu.
Để thực hiện dán nhiều dòng vào dấu nhắc lệnh, hãy mở dấu ngoặc đơn hoặc dấu ngoặc kép trước khi dán.
$ echo '
paste
...
...
'
Sau đó, bạn có thể nhấn return để lặp lại nó. Khi bạn mũi tên lên, tất cả các dòng bạn dán sẽ nằm trên một dòng có thể chỉnh sửa.
Điều này hoạt động miễn là không có một trích dẫn trong văn bản bạn dán.
Trong cửa sổ soạn thảo văn bản, sử dụng các phím tắt sau để sao chép văn bản mà không có \ n (nguồn cấp dữ liệu):
Trong cửa sổ trình duyệt hoặc một thứ khác mà văn bản không thể chỉnh sửa được, sử dụng một trong hai kỹ thuật:
Một lựa chọn đúng (không có \ n) trông như thế nào:
ls -al
Cách lựa chọn sai (với \ n) trông như thế nào:
ls -al