Tôi có thể cat một tập tin, sao chép và dán văn bản bằng nút giữa hoặc shift-insert.
Làm thế nào tôi có thể sao chép văn bản trong vim và dán nó từ bảng tạm hệ thống?
:!sed -n 5,10p %
:!cat %
Tôi có thể cat một tập tin, sao chép và dán văn bản bằng nút giữa hoặc shift-insert.
Làm thế nào tôi có thể sao chép văn bản trong vim và dán nó từ bảng tạm hệ thống?
:!sed -n 5,10p %
:!cat %
Câu trả lời:
Bạn cần có Vim với clipboardvà xtermclipboardcác tính năng biên soạn. Trong Ubuntu, đây là những chỉ có sẵn với các gói vim GUI ( vim-gnome, vim-gtk, vim-athena, vv).
Khi bạn cài đặt một trong số này, bạn có thể sao chép vào (và dán từ) các thanh ghi clipboard ( *và +). Từ bài viết rất nhiều thông tin này trên Vi và Vim :
Đối với các hệ thống dựa trên X11 (ví dụ: Linux và hầu hết các hệ thống tương tự UNIX khác ), có 2 bảng ghi, độc lập với nhau:
- CHÍNH HÃNG - Đây là bản sao khi chọn và có thể được dán bằng nút chuột giữa.
- CLIPBOARD - Điều này được sao chép bằng (thường)
^Cvà được dán bằng^V(Nó giống như MS Windows).
Vim có 2 thanh ghi đặc biệt tương ứng với các clipboards này:
*sử dụng CHÍNH HÃNG; ghi nhớ: s tar là s bầu (đối với copy-on- s bầu)+sử dụng CLIPBOARD; ghi nhớ: CTRL + C (đối với tổ hợp phím chung)
Để sao chép vào một thanh ghi, bạn đặt trước lệnh sao chép ( y) với "và tên của thanh ghi ( *ví dụ). "*y, Sau đó trung bấm vào để dán, hay "+yvà ShiftInsertđể dán.
Một giải pháp khá thú vị đến từ câu hỏi này . Cài đặt xclip, sau đó đầu ra đường ống của một lệnh thành xclip ( cat file | xclip -selection clipboardví dụ), sau đó dán nó ở bất cứ đâu, (nếu đó là trong thiết bị đầu cuối - sử dụng Ctrl ShiftV
). Bây giờ, hóa ra bạn thực sự có thể rút ngắn lệnh xclip -sel clipđó, điều này không rõ ràng bằng cách đọc trang man hoặc ví dụ ở đó.
/dev, nhưng văn bản vẫn được giữ ở đâu đó, phải không?
Tôi gặp sự cố vì vim của tôi không hỗ trợ clipboard :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Tôi đã cài đặt vim-gnome (hỗ trợ clipboard) và sau đó kiểm tra lại:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Bây giờ tôi có thể sao chép và dán bằng cách sử dụng "+ y và" + p tương ứng.
sed -n5,10pđể in các dòng 5-10 để tôi có thể dễ dàng sao chép và dán mà không cần vim phản ứng với chuột.