Tôi chạy vào vấn đề này và một vấn đề liên quan đến nơi tạm dừng vim với ctrl-z
cũng sẽ xóa clipboard. Tôi đã mở rộng Matt's solution để sửa chữa cả:
set clipboard=unnamedplus
if executable("xsel")
function! PreserveClipboard()
call system("xsel -ib", getreg('+'))
endfunction
function! PreserveClipboadAndSuspend()
call PreserveClipboard()
suspend
endfunction
autocmd VimLeave * call PreserveClipboard()
nnoremap <silent> <c-z> :call PreserveClipboadAndSuspend()<cr>
vnoremap <silent> <c-z> :<c-u>call PreserveClipboadAndSuspend()<cr>
endif
Người bảo vệ if executable("xsel")
ở đó để tránh sai sót nếu xsel
không được cài đặt. Ánh xạ nnoremap
lưu giữ khay nhớ tạm khi tạm dừng từ chế độ bình thường và các xử lý ánh xạ vnoremap
tạm dừng từ chế độ trực quan hoặc chọn.
Tôi đã xác nhận điều này hoạt động trên vim 7.4 và 8.0.
Nguồn
2018-02-24 05:34:21
Windows, Linux, Mac OS? – TLP
Đọc Câu hỏi thường gặp mà mọi người bỏ phiếu để đóng. "Các công cụ phần mềm thường được sử dụng bởi các lập trình viên" không phải là chủ đề. –
@TLP Phải là Linux. Nếu tôi không nhầm, quy trình là như sau: 1. Bạn sao chép văn bản. 2. Vim nói với X rằng nó có dữ liệu cho clipboard («nói rằng nó có dữ liệu», không phải «đưa dữ liệu vào clipboard»). 3. Bạn thoát khỏi vim. 4. X bây giờ không có ý tưởng nơi ông có thể nhận được dữ liệu cho clipboard: clipboard là «xóa». – ZyX