Làm cách nào để sao chép lệnh đầu ra trong vim?


33

Ví dụ: nếu tôi gõ ' :pwd' để lấy thư mục làm việc hiện tại, tôi có thể chọn văn bản trong gvim nhưng tôi không thể tìm ra cách sao chép nó vào bảng tạm. Nếu tôi thử tương tự trong console vim, tôi thậm chí không thể chọn nó bằng chuột. Tôi muốn điều này hoạt động với tất cả các lệnh vim, chẳng hạn như set guifontsao chép guifont=Consolas:h10:cANSIđầu ra.

Câu trả lời:


41

Bạn đang tìm kiếm cái này,

:redir @* | set guifont | redir END

: lệnh chuyển hướng chuyển hướng đầu ra của lệnh đến một thanh ghi (@ *). Thanh ghi @ * dùng để chỉ bảng tạm.

Để biết thêm thông tin về điều này,

:help :redir

không làm việc trong vim-gtk một số đầu mối?
Sergio Abreu

@SergioAbreu thử @+thay vì @*(tốt, nó hoạt động trong gvim).
leeand00

10

Hãy thử ' :r !pwd' để lấy thư mục làm việc hiện tại trực tiếp vào tệp đã mở GVIM.
Sau đó, bạn có thể sao chép nó vào clipboard như bất kỳ nội dung tệp văn bản nào khác được mở ở đó.


Điều này rất hữu ích, nhưng tôi có thể sử dụng nó với set guifontví dụ không?
Steven

Không, đó không phải là lệnh shell nên nó sẽ không hoạt động.
Kevin Panko

4

Đối với ví dụ cụ thể này, bạn có thể làm (lưu ý "!" Làm cho nó đi qua lớp vỏ):

:!pwd | xclip

hoặc là

:!pwd | xclip -selection secondary

(tùy thuộc vào lựa chọn X nào bạn muốn).

Bạn có thể phải cài đặt xclip trước

sudo apt-get install xclip

(hoặc tương đương)


3

Nếu bạn đang chạy vim trong xterm, giữ phím shift trong khi chọn văn bản sẽ sao chép văn bản vào X tương đương với bảng tạm.


X có hai clipboards (ít nhất); đề xuất của bạn sẽ đặt văn bản trong lựa chọn CHÍNH (dán bằng nhấp chuột giữa) thay vì hselection CLIPBOARD (dán bằng Ctrl + V trong hầu hết các ứng dụng).
Marius Gedminas
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.