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ę?

Odpowiedzi:


202

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


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


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.


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



6

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


... 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



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


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.


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


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)


-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)


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.