Yank toàn bộ tập tin


126

Tôi thường viết một cái gì đó trong gVim, sau đó cần sao chép-dán nó vào một ứng dụng khác.

Có một cách dễ dàng để kéo toàn bộ tập tin? Tôi thường làm một cái gì đó như thế này

ggVG"+y

(Chuyển lên trên cùng, chế độ trực quan, xuống dưới, yank)

Nhưng có cách nào tốt hơn mà tôi đang bỏ lỡ không?

Câu trả lời:


201

Tôi sử dụng hướng dẫn sau: :%y+


6
+ Làm gì, làm ơn?
VoY

5
Đây là một đăng ký liên quan đến clipboard. Một cái mà OP đã sử dụng trong câu hỏi của anh ấy. => :h :y,:h registers
Luc Hermitte

5
@VoY: Bạn cần phải biên dịch Clipboard -property vào Vim để làm việc này "+ clipboard". Nó có nghĩa là "mọi thứ yank với bên ngoài-clipboard-in-some-window-manager". Khách sạn này không phải là thực tế nhưng nó đi kèm với một số vims đồ họa rõ ràng là không thực tế như gVim. Xin vui lòng, sửa lỗi cho tôi nếu tôi sai (chỉ cần lưu ý điều này khi phải sử dụng yank trong Windows gVim vì vậy tôi không thể hoàn toàn chắc chắn tất nhiên nhưng tôi tin rằng đây là tài sản).
hhh

8
Nếu thanh ghi + không hoạt động cho bạn trong ubfox 11.04+, hãy thử cài đặt gVim (apt-get install vim-gnome). Điều này cũng sẽ cung cấp thuộc tính + clipboard vào phiên bản đầu cuối của vim
adharris

3
Tôi đã từng làm gg"+YGnhưng tôi không bao giờ thích nó bởi vì tôi đã mất dòng ban đầu tôi đang trên. Đây là hoàn hảo!
verboze

56

ggyG (đi đến dòng đầu tiên, kéo đến dòng cuối cùng)

Chỉnh sửa: Ah, hệ thống clipboard. Không chính xác lăn ra khỏi ngón tay, nhưng:gg"+yG


1
Cảm ơn điều này làm việc cho tôi, không phải:% y +. Nhưng làm thế nào để tôi dán nó vào localhost từ xa? :)
valk

1
Vì vậy, về cơ bản lệnh này đi lên trên cùng của tài liệu, và làm một cái gì đó, kéo đến cuối tài liệu? "Làm gì ở đây?
geoyws

1
@Geoyws "nói rằng bạn muốn làm việc với một đăng ký. "+là một thanh ghi được gắn với clipboard hệ thống. "+yGyanks tất cả mọi thứ cho đến khi dưới cùng của tập tin vào đăng ký này. :help "+
Annika Backstrom

15

Một giải pháp làm việc trong vi cũ là :r filenametrong tập tin mới.


5
Mặc dù đây không chính xác là một câu trả lời cho câu hỏi, nó là câu trả lời cho tôi . Cảm ơn bạn.

2
Tôi cần thêm số 0 để dán vào đầu tập tin::0r filename
Stefan van den Akker



6

Tôi sử dụng hướng dẫn sau : :%y.


... không qua các cửa sổ khác nhau trong trình quản lý cửa sổ. + ở cuối đưa nó vào bảng tạm bên ngoài (rõ ràng là những gì op cố gắng làm)
hhh


3

Hoặc đơn giản là trong .vimrc:

nmap <silent> <F5> ggVG"+y

Vì vậy, bạn chỉ có thể sử dụng một phím :)


3

Trong OSX:

ggVG
!tee >(pbcopy)

Mà tôi thấy đẹp hơn:

ggVG
:w !pbcopy

Vì nó không hiện lên một dấu nhắc: " Press ENTER or type command to continue"


1

:%ykhông +hoạt động trên toàn bộ hệ thống nếu bạn đang sử dụng neo-vim (nvim).

Điều này cho phép chúng tôi tránh duỗi các ngón tay của mình +- vô tình làm cho phím tắt này tốt hơn ggyG.


0

Tùy thuộc vào tần suất bạn thực hiện, chỉ cần ánh xạ một khóa cho việc này và tùy ý thêm vào vimrc

:nnoremap <F5> :%y

hoặc là

:nnoremap <leader><whatever> :%y

hoặc bất cứ khóa nào bạn biết là an toàn và nhanh nhất, sau đó thêm vào nguồn ánh xạ hoặc bất cứ thứ gì. Ưu điểm của vấn đề này ggyGlà nó không di chuyển con trỏ (nhanh hơn) và để giữ vị trí con trỏ của bạn, bạn phải thêm một<Ctrl-o><Ctrl-o>

Mọi người thường quên rằng các lệnh dựa trên phiên trừ khi trong vimrc. Tôi thường biết khi nào tôi sẽ làm nhiều thứ nhưng không cần nó như mặc định và chỉ:[mode]remap <whatever> <whatever>

Tôi có thể đóng và mở lại vim nếu tôi cần.

Nếu <Ctrl-A><Ctrl-C>hoạt động cho bạn thì bạn đang sử dụng mswin.vim trong nguồn của mình và mất đi sức mạnh của các hoạt động tăng <Ctrl-a>và giảm <Ctrl-x>(trong số những thứ khác). Tôi đã bắt đầu trong các cửa sổ và ngừng sử dụng mswin.vim cùng thời gian trước. Cá nhân tôi cảm thấy tốt nhất là mò mẫm Vim đúng cách và sau đó thêm vào đôi nạng bạn thực sự cần: P


2
Chào mừng bạn đến với Stackoverflow. Trình chỉnh sửa hỗ trợ định dạng , vì vậy vui lòng xem xét gói các ví dụ mã của bạn (chẳng hạn như các lệnh bạn đã sử dụng) trong backticks ( `) hoặc khối mã.
Jan Kundrát

-1

Nó bẩn nhưng bạn không cần phải sử dụng phím shift và chỉ có 3 phím khác nhau có thể nhanh hơn:

gg1111yy

(Giả sử tệp ngắn hơn 1111 dòng)


-2

Trên Windows tôi thường chỉ làm CTRL-A, CTRL-C để sao chép tất cả vào bảng tạm của windows ... Không thể dễ dàng hơn thế!

Tôi đang sử dụng một gvim 7.1 tiêu chuẩn từ trang web ...

(BTW: cũng hoạt động trên máy Mac của tôi với MacVim và phím mac vui nhộn + A, phím mac + C)


1
windows gvim thêm một số phím tắt bổ sung không có trong các phiên bản khác, để thử và làm cho nó phù hợp hơn với người dùng windows. ctrl + a, ctrl + c, là hai ví dụ về những điều đó.
davr

9
Mm, ctrl-c có ý nghĩa hoàn toàn khác với người dùng thiết bị đầu cuối.
Xiong Chiamiov

chắc chắn, nhưng khi ở trong windows, hãy làm như windows làm :) Chỉ cần nói, gvim và MacVim tôn vinh các phím tắt clipboard tiêu chuẩn của nền tảng - không có gì sai khi sử dụng chúng ....
Daren Thomas

4
Cũng có thể không sử dụng vim, nếu bạn muốn sử dụng các phím tắt như thế này.
VoY

1
CTRL - A tăng số dưới con trỏ.
Alexcp
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.