Không thể sao chép vào Clipboard từ Vim


28

Tôi đang chạy Vim 7.3 trong Linux Mint 13 (sử dụng MATE) và tôi không thể lưu văn bản vào bảng tạm hệ thống. Tôi chạy Vim trong thiết bị đầu cuối và sao chép văn bản từ thiết bị đầu cuối với CTRLINSERT. Khi tôi chọn văn bản trong Vim (bằng chuột hoặc ở chế độ trực quan), CTRLINSERTsẽ không sao chép bất kỳ văn bản nào. Ngoài ra, khi tôi nhấp chuột phải, Sao chép có màu xám. Hơn nữa, tôi không thể ghi vào bộ đệm hệ thống bằng cách kéo vào thanh ghi tương ứng bằng các lệnh vim. Tuy nhiên, tôi có thể dán trong khi ở chế độ chèn (sử dụng SHIFTINSERThoặc nhấp chuột phải). Tôi cũng có thể sao chép văn bản trực tiếp từ thiết bị đầu cuối bằng cách sử dụng kỹ thuật tương tự, chỉ không phải văn bản từ Vim.

Đây là ~ / .vimrc hiện tại của tôi . Phần có liên quan rất có thể set clipboard=autoselect,unnamed,exclude:cons\|linux. Nếu tôi đặt lên finishhàng đầu ~ / .vimrc, tôi có cùng một vấn đề, vì vậy tôi nghĩ rằng dòng này là sai, nhưng tôi đã thử set clipboard=unnamedvà có hành vi tương tự.

Có thể có một tập tin cấu hình khác ảnh hưởng đến hành vi của Vim? Làm cách nào tôi có thể thay đổi ~ / .vimrc để cho phép tôi sao chép văn bản từ Vim?

Câu trả lời:


55

Tôi tin rằng vấn đề sao chép của bạn là do:

mouse=a 

trong .vimrc Điều này đặt vim của bạn vào chế độ trực quan bất cứ khi nào bạn chọn một cái gì đó bằng chuột. Và vì một số lý do điên rồ, người ta không được phép sao chép khi ở chế độ trực quan. Bạn có thể di chuyển xung quanh nó bằng cách giữ phím shift khi chọn văn bản không chuyển sang chế độ trực quan cho phép bạn sử dụng menu sao chép.

hoặc bạn có thể đổi thành:

:set mouse=v

và sao chép sẽ hoạt động trở lại. thêm nó vào tập tin ~ / .vimrc của bạn nếu bạn muốn nó là vĩnh viễn


2
Trong khi điều này thực sự có thể giải quyết vấn đề của họ, một lời giải thích tại sao nó hoạt động sẽ hữu ích hơn. Không có nó, câu trả lời của bạn chỉ là nói với ai đó Nhấn nút xanh hai lần - Nó có thể hoạt động, có thể không, nhưng nó không khai sáng cho họ.
voretaq7

Cảm ơn, điều đó đã giải quyết nó. Lời giải thích mà bạn đã thêm sau bình luận của voretaq7 cũng giúp ích rất nhiều!

Điều này cũng làm việc cho Cygwin.
Dave Jarvis

1
Chế độ này sẽ làm nổi bật mọi thứ, vì vậy nếu tôi muốn sao chép một vài dòng, tôi cũng sao chép số dòng và tất cả khoảng trống sau mỗi dòng cho đến hết màn hình. Có cách nào để chỉ chọn nội dung có liên quan (đó là cách làm nổi bật hoạt động khi mouse=a)?
Dennis

Câu trả lời tốt. Chỉ là một điểm cộng: nhiều chế độ chuột hơn ở đây:help mouse
Tiến sĩ Beco

10

sudo apt-get install vim-gtk sẽ có khả năng giải quyết vấn đề này cho các nhân viên Google khác.

Vim kiểu đầu cuối tốt không có quyền truy cập vào bảng tạm, là một phần của hệ thống cửa sổ X. Cài đặt vim-gtkcung cấp cho vim quyền truy cập mà nó cần sửa đổi và xem bảng tạm.


2
Công trinh! Trên Debian Buster (hiện đang thử nghiệm) Tôi đã cài đặt vim-gtk và sau đó dòng lệnh vim trong xterm của tôi cho phép tôi sử dụng bộ đệm *+bộ đệm để truy cập vào bộ đệm cửa sổ x. Cài đặt vim-gtk sử dụng các lựa chọn thay thế Debian để đặt vim -> /usr/bin/vim.gtk.
RobertL

0

Thiết bị đầu cuối không biết gì về các lựa chọn vim, vì vậy đừng hy vọng nó sẽ giúp ích được gì. Bạn sẽ cần vim để được xây dựng dựa trên X (ví dụ gvim -v), sau đó kéo và đặt từ thanh +ghi.


3
Các vim-gtkgói trong Ubuntu chứa hỗ trợ clipboard (ngay cả khi thực hiện như vimtrong một thiết bị đầu cuối).
mgorven

Đồng ý và xác nhận trên Debian Buster (hiện đang thử nghiệm) Tôi đã cài đặt vim-gtk và sau đó dòng lệnh vim trong xterm của tôi cho phép tôi sử dụng bộ đệm * và + để truy cập vào bộ đệm cửa sổ x. Cài đặt vim-gtk sử dụng các lựa chọn thay thế Debian để đặt vim -> /usr/bin/vim.gtk.
RobertL

0

chỉ gvimtrên arch linux nếu có ai muốn biết. Ngoài ra, hãy xem neovim(và python-neovim&& python2-neovimcho bạn Hỗ trợ Hoàn thành Tôi, v.v.).


Hãy thử sử dụng gvim qua ssh.
Hopeeekr
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.