Szarpnij cały plik

126

Często piszę coś w gVimie, potem muszę to skopiować i wkleić do innej aplikacji.

Czy istnieje łatwy sposób na wyszarpnięcie całego pliku? Zwykle robię coś takiego

ggVG"+y

(Idź do góry, tryb linii wizualnej, idź do dołu, szarpnij)

Ale czy jest lepszy sposób, w jaki tęsknię?

Chad Birch
źródło

Odpowiedzi:

202

Używam następującej instrukcji: :%y+

Luc Hermitte
źródło
6
Co robi +, proszę?
VoY
5
To jest rejestr powiązany ze schowkiem. Ten sam, którego OP użył w swoim pytaniu. => :h :y,:h registers
Luc Hermitte
5
@VoY: Musisz skompilować właściwość schowka do Vima, aby uzyskać ten działający "+ schowek". To znaczy „wszystko szarpie do zewnętrznego-schowka-w-jakimś-menedżerze-okien”. Ta właściwość nie jest de facto, ale jest dostarczana z niektórymi graficznymi wersjami, najwyraźniej de facto, takimi jak gVim. Proszę, popraw mnie, jeśli się mylę (właśnie zauważyłem tę rzecz, gdy musiałem użyć yank w gVimie Windows, więc nie mogę być całkowicie pewien, ale wierzę, że to jest właściwość).
hhh
8
Jeśli rejestr + nie działa dla Ciebie w systemie ubuntu 11.04+, spróbuj zainstalować gVim (apt-get install vim-gnome). To zapewni właściwość + clipboard w terminalowej wersji vim
adharris,
3
Kiedyś to gg"+YGrobiłem, ale nigdy mi się to nie podobało, ponieważ straciłem oryginalną linię, na której byłem. To jest doskonałe!
verboze,
56

ggyG (idź do pierwszej linii, szarpnij do ostatniej linii)

Edycja: Ach, schowek systemowy. Nie zsuwa się dokładnie z palców, ale:gg"+yG

Annika Backstrom
źródło
1
Dzięki temu działa dla mnie, a nie:% y +. Ale jak wkleić go na hoście lokalnym z pilota? :)
valk
1
Więc w zasadzie to polecenie trafia na górę dokumentu i coś robi, szarpie na dół dokumentu? Co znaczy „tu robić?
geoyws
1
@Geoyws "mówi, że chcesz pracować z rejestrem. "+to rejestr powiązany ze schowkiem systemowym. "+yGszarpie wszystko do końca pliku do tego rejestru. :help "+
Annika Backstrom
15

Działające rozwiązanie ze starego vi znajduje się :r filenamew nowym pliku.

mouviciel
źródło
5
Chociaż nie jest to dokładna odpowiedź na pytanie, to była odpowiedź na moje . Dziękuję Ci.
2
Muszę dodać zero, żeby wkleić go na początku pliku::0r filename
Stefan van den Akker
12

Inna metoda jest taka:

ggyG

Idź na górę i szarpnij na dół.

Glen Solsberry
źródło
stackoverflow.com/a/829944/6723250 zawiera te same informacje z dodatkowymi szczegółami
Xerus
6

Używam następującą instrukcję: :%y.

Cheng
źródło
... nie nad różnymi oknami w menedżerze okien. + na koniec szarpie go do zewnętrznego schowka (najwyraźniej to, co próbuje zrobić
operacja
4
:0,$ y

Nie wiem, która droga jest łatwiejsza.

Meninx - メ ネ ン ッ ク ス
źródło
3

Lub po prostu w .vimrc:

nmap <silent> <F5> ggVG"+y

Możesz więc użyć jednego klawisza :)

dr Hannibal Lecter
źródło
3

W OSX:

ggVG
!tee >(pbcopy)

Które uważam za ładniejsze niż:

ggVG
:w !pbcopy

Ponieważ nie wyświetla monitu: „ Press ENTER or type command to continue

James Scriven
źródło
1

:%ybez +działa w całym systemie, jeśli używasz neo-vim (nvim).

Pozwala nam to uniknąć rozciągania palców w kierunku +- właściwie czyniąc ten skrót lepszym niż ggyG.

LearnOPhile
źródło
0

W zależności od tego, jak często to robisz, po prostu zmapuj do tego klucz i opcjonalnie dodaj do vimrc

:nnoremap <F5> :%y

lub

:nnoremap <leader><whatever> :%y

lub jakikolwiek klucz, który znasz, jest bezpieczny i najszybszy - następnie dodaj go do źródła mapowania lub cokolwiek innego. Zaletą tego rozwiązania ggyGjest to, że nie przesuwa kursora (szybciej) i aby zachować pozycję kursora, musiałbyś dodać<Ctrl-o><Ctrl-o>

Ludzie często zapominają, że polecenia są oparte na sesjach, chyba że w vimrc. Często wiem, kiedy mam zamiar zrobić dużo, ale nie potrzebuję tego domyślnie i po prostu:[mode]remap <whatever> <whatever>

Mogę zamknąć i ponownie otworzyć Vima, jeśli zajdzie taka potrzeba.

Jeśli <Ctrl-A><Ctrl-C>działa dla ciebie, używasz mswin.vim w swoim źródle i tracisz moc operacji zwiększania <Ctrl-a>i zmniejszania <Ctrl-x>(między innymi). Zacząłem w systemie Windows i przestałem używać mswin.vim dawno temu. Osobiście uważam, że najlepiej jest pojąć Vima we właściwy sposób, a następnie dodać kule, których naprawdę potrzebujesz: P

Alex
źródło
2
Witamy w Stackoverflow. Edytor obsługuje formatowanie , więc rozważ zawijanie przykładów kodu (takich jak użyte polecenia) w lewy apostrof ( `) lub bloki kodu.
Jan Kundrát
-1

Jest brudny, ale nie musisz w ogóle używać klawisza Shift i tylko 3 różne klawisze, które mogą być szybsze:

gg1111yy

(Zakładając, że plik jest krótszy niż 1111 linii)

Richard
źródło
-2

W systemie Windows często po prostu robię CTRL-A, CTRL-C, aby skopiować wszystko do schowka systemu Windows ... Nie ma nic prostszego!

Używam standardowego Gvima 7.1 ze strony internetowej ...

(BTW: działa również na moim Macu z MacVimem i tym zabawnym klawiszem Mac + A, klawiszem Mac + C)

Daren Thomas
źródło
1
Windows gvim dodaje kilka dodatkowych skrótów, których nie ma w innych wersjach, aby spróbować lepiej dopasować się do użytkowników systemu Windows. ctrl + a, ctrl + c, to dwa przykłady.
davr
9
Mm, ctrl-c ma zupełnie inne znaczenie dla użytkownika terminala.
Xiong Chiamiov
jasne, ale w systemie Windows rób to, co robią okna :) Mówiąc tylko, gvim i MacVim honorują standardowe skróty schowka platformy - nie ma też nic złego w używaniu ich ...
Daren Thomas
4
Równie dobrze może w ogóle nie używać vima, jeśli chcesz używać takich skrótów.
VoY
1
CTRL-A zwiększ liczbę pod kursorem.
Alexcp