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 clipboard
và xtermclipboard
cá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)
^C
và đượ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 "+y
và 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 clipboard
ví 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.