Các "*
và các "+
thanh ghi dành cho clipboard của hệ thống ( :help registers
). Tùy thuộc vào hệ thống của bạn, họ có thể làm những việc khác nhau. Ví dụ, trên các hệ thống không sử dụng X11 như OSX hoặc Windows, thanh "*
ghi được sử dụng để đọc và ghi vào bảng tạm hệ thống. Trên các hệ thống X11 cả hai thanh ghi có thể được sử dụng. Xem :help x11-selection
để biết thêm chi tiết, nhưng về cơ bản "*
là tương tự với lựa chọn CHÍNH của X11 (thường sao chép những thứ bạn chọn bằng chuột và dán bằng nút chuột giữa) và "+
tương tự với lựa chọn CLIPBOARD của X11 (phù hợp với bảng tạm).
Nếu tất cả những gì diễn ra trong đầu bạn, hãy thử sử dụng "*yy
hoặc "+yy
sao chép một dòng vào bảng tạm của hệ thống. Giả sử bạn có các tùy chọn biên dịch phù hợp, cái này hoặc cái kia sẽ hoạt động. Bạn có thể muốn ánh xạ lại điều này để một cái gì đó thuận tiện hơn cho bạn. Ví dụ: bạn có thể đặt vnoremap <C-c> "*y
~ / .vimrc của mình để bạn có thể chọn trực quan và nhấn Ctrl+ cđể kéo vào bảng tạm của hệ thống.
Xin lưu ý rằng sao chép / dán từ bảng tạm hệ thống sẽ không hoạt động nếu :echo has('clipboard')
trả về 0. Trong trường hợp này, vim không được biên dịch với +clipboard
tính năng này và bạn sẽ phải cài đặt một phiên bản khác hoặc biên dịch lại. Một số distro linux cung cấp cài đặt vim tối thiểu theo mặc định, nhưng nói chung nếu bạn cài đặt vim-gtk
hoặc vim-gtk3
gói, bạn có thể nhận được các tính năng bổ sung.
Bạn cũng có thể muốn xem xét 'clipboard'
tùy chọn được mô tả tại :help cb
. Trong trường hợp này, bạn có thể :set clipboard=unnamed
hoặc :set clipboard=unnamedplus
thực hiện tất cả các thao tác kéo / xóa tự động sao chép vào bảng tạm hệ thống. Điều này có thể là một sự bất tiện trong một số trường hợp bạn đang lưu trữ một cái gì đó khác trong bảng tạm vì nó sẽ ghi đè lên nó.
Để dán, bạn có thể sử dụng "+p
hoặc "*p
(một lần nữa, tùy thuộc vào hệ thống của bạn và / hoặc lựa chọn mong muốn) hoặc bạn có thể ánh xạ những thứ này sang thứ khác. Tôi gõ chúng một cách rõ ràng, nhưng tôi thường thấy mình ở chế độ chèn. Nếu bạn đang ở chế độ chèn, bạn vẫn có thể dán chúng với thụt lề thích hợp bằng cách sử dụng <C-r><C-p>*
hoặc <C-r><C-p>+
. Xem :help i_CTRL-R_CTRL-P
.
Nó cũng đáng đề cập đến paste
tùy chọn của vim ( :help paste
). Điều này đặt vim vào một "chế độ dán" đặc biệt, vô hiệu hóa một số tùy chọn khác, cho phép bạn dễ dàng dán vào vim bằng trình giả lập thiết bị đầu cuối hoặc phím tắt dán quen thuộc của bộ ghép kênh. Chỉ cần gõ :set paste
để kích hoạt nó, dán nội dung của bạn và sau đó gõ :set nopaste
để vô hiệu hóa nó. Ngoài ra, bạn có thể sử dụng pastetoggle
tùy chọn để đặt mã khóa bật chế độ ( :help pastetoggle
). Tôi khuyên bạn nên sử dụng các thanh ghi thay vì các tùy chọn này, nhưng nếu chúng vẫn còn quá đáng sợ thì đây có thể là một cách giải quyết thuận tiện trong khi bạn đang hoàn thiện các vim của bạn.
Xem :help clipboard
để biết thêm thông tin chi tiết.