vim và hệ thống clipboard


9

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?


đôi khi tôi sử dụ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.
Grantbow

thực sự từ bên trong vim lệnh trông giống như:!sed -n 5,10p %
Grantbow

Cảm ơn tất cả các ý kiến ​​và câu trả lời. xclip đôi khi hữu ích, cảm ơn @ sergiy-kolodyazhnyy. Khi tôi làm việc trên các máy khác nhau, đôi khi tôi không kiểm soát được vim nào được cài đặt nhưng có hướng dẫn kiểm tra câu trả lời của @muru là hữu ích, cảm ơn @ ashutosh-tripathy. Tôi cần sử dụng các lệnh đăng ký vim thường xuyên hơn để ghi nhớ chúng khi tôi cần. Như tôi đã đề cập trong câu hỏi ở trên, nếu tôi muốn thực hiện nhanh chóng và tệp nhỏ thì lệnh bên trong vim trông giống như:!cat %
Grantbow

Câu trả lời:


12

Bạn cần có Vim với clipboardxtermclipboardcá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 ( *+). 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 "+yShiftInsertđể dán.


3

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ụ ở đó.


2
Một cách khác là nếu bạn sử dụng màn hình hoặc tmux, cùng với plugin này . Trong mọi trường hợp, một cái gì đó cần phải được cài đặt.
muru

Bảng tạm thực sự được sử dụng trong máy chủ x là gì? Tôi không tìm thấy gì trong đó /dev, nhưng văn bản vẫn được giữ ở đâu đó, phải không?
Sergiy Kolodyazhnyy

Tôi luôn cho rằng nó sẽ ở trong bộ nhớ. Tuy nhiên, đó có vẻ là một câu hỏi hay cho Unix & Linux .
muru

3

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.

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.