Skopiuj wszystkie linie do schowka

Czy Jest jakiś sposób na skopiowanie wszystkich linii z otwartego pliku do schowka w edytorze VI. Próbowałem yG ale nie używa schowka do przechowywania tych linii.

Czy to możliwe?

 443
Author: 3 to 5 business days, 2009-10-25

22 answers

Należy przełożyć tekst na * LUB + rejestry :

gg"*yG

Wyjaśnienie:

  • gg aby przenieść kursor do pierwszego znaku pliku
  • "*y aby uruchomić polecenie yank do rejestru * od pierwszej linii, aż..
  • G aby przejść do końca pliku
 517
Author: CMS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-09 20:39:52

Użycie:

:%y+

/ Align = "left" /

Wyjaśnienie:

  • % aby skierować następne polecenie do pracy na wszystkich liniach
  • To yank those lines
  • + aby skopiować do schowka systemowego

NB : W Windows, + i * są równoważne zobacz tę odpowiedź.

 578
Author: Rook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:32

Na Macu

  • Skopiuj zaznaczoną część: wizualnie zaznacz tekst (wpisz v LUB V w normalnym tryb) i wpisz :w !pbcopy

  • Skopiuj cały plik :%w !pbcopy

  • Przeszłość ze schowka :r !pbpaste

 64
Author: Brian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-17 02:35:54

Schowek jest buforem +. Aby skopiować do schowka, wykonaj "+y i [ruch].

Więc, gg"+yG skopiuje cały plik.

Podobnie, aby wkleić ze schowka, "+p

 46
Author: Tordek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-28 17:37:52

Innym łatwym sposobem skopiowania całego pliku, jeśli masz problemy z użyciem VI, jest wpisanie "Cat filename". Wyświetli echo pliku na ekranie, a następnie możesz po prostu przewijać w górę iw dół i kopiować / wklejać.

 32
Author: Zack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-14 17:17:28

To jest to, co robię, aby wyrwać cały plik:

ggVGy
 25
Author: EmilianoGNFNR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-18 16:31:33

(w odpowiedzi na @rshdev, i aby uniknąć konieczności przekompilowania Vima z + xterm_clipboard na @ nelstrom w komentarzach na OP)

Jest program o nazwie xclip, który działa jak putclip na Ubuntu 11:

:%!xclip -sel clip
u

Nie jest zainstalowany domyślnie. aby zainstalować, użyj:

sudo apt-get install xclip
 10
Author: Stew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-02 15:35:25

Na Ubuntu 12

Możesz spróbować zainstalować vim-gnome opakowanie:

sudo apt-get install vim-gnome

Próbowałem, ponieważ vim --version powiedział mi, że będzie miał flagę xterm_clipboard wyłączoną (wskazaną przez - ), który jest potrzebny do korzystania z funkcji schowka.

- > instalacja pakietu vim-gnome na Ubuntu 12 zainstalowano również konsolową wersję Vima, która ma włączoną tę opcję (wskazaną przez + przed znacznik xterm_clipboard)

Na Arch Linux

Możesz zainstalować vim-clipboard z tego samego powodu.

 9
Author: Arch Linux Tux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-29 08:57:42

Wypróbowałem kilka poleceń, które ludzie wspomniali powyżej. Nic nie działało. Potem zdobyłem najprostszy z nich wszystkich.

Krok 1: vi <filename>
Krok 2: Kliknij prawym przyciskiem myszy na pasku tytułowym okna Putty
Krok 3: Wybierz "Wyczyść przewijanie" (aby uniknąć kopiowania reszty sesji SSH)
Krok 4: Kliknij ponownie prawym przyciskiem myszy i wybierz "Kopiuj wszystko do schowka".

 6
Author: Abhinav Deshpande,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-14 19:48:14

Możesz nacisnąć gg, aby zlokalizować kursor na początku pliku,a następnie nacisnąć yg, aby skopiować całą zawartość Od początku do końca (g) do bufora.powodzenia!

 5
Author: gameboy90,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-07 09:27:39

Jeśli używasz Vima w trybie wizualnym, standardowe klawisze cięcia i wklejania również mają zastosowanie, przynajmniej w systemie Windows.

  • CTRLA oznacza " Zaznacz cały plik.
  • CTRLC oznacza " skopiuj zaznaczenie.
  • ESC oznacza " De-select, więc następne naciśnięcie klawisza nie zastąpi całego pliku: -)

Pod terminalem Ubuntu (Gnome) przynajmniej działa standardowa Kopia (CTRLSHIFTC, chociaż tam nie wygląda na standardowy skrót klawiaturowy dla select all (inny niż ALTE , po którym następuje A ).

 4
Author: paxdiablo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-25 05:29:14

Możesz użyć polecenia" cat", aby otworzyć plik i użyć myszy do skopiowania

 4
Author: Luan Pham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-02 12:50:51

:%y a przenosi całą zawartość do bufora Vima, Naciśnięcie klawisza p w trybie komend spowoduje wklejenie szarpanej zawartości po wierszu, w którym aktualnie stoi kursor.

 3
Author: Ma'moon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-02 23:04:56

GVim:

:set go=a

ggVG

Zobacz :help go-a:

'a' Autoselect:  If present, then whenever VISUAL mode is started,
 or the Visual area extended, Vim tries to become the owner of
 the windowing system's global selection.  This means that the
 Visually highlighted text is available for pasting into other
 applications as well as into Vim itself.  When the Visual mode
 ends, possibly due to an operation on the text, or when an
 application wants to paste the selection, the highlighted text
 is automatically yanked into the "* selection register.
 Thus the selection is still available for pasting into other
 applications after the VISUAL mode has ended.
     If not present, then Vim won't become the owner of the
 windowing system's global selection unless explicitly told to
 by a yank or delete operation for the "* register.
 The same applies to the modeless selection.
 3
Author: kev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-25 05:12:17

Nie było pojęcia "schowka" w vi Billa Joya, więc nie sądzę, że jest na to wbudowany sposób.

Funkcja automatycznego kopiowania-czegokolwiek-podświetlonego-do-schowka GVim jest najłatwiejsza lub użyj zewnętrznego programu poprzez :!

Do Vim Cygwina używam

:%!putclip
u

Może Ubuntu ma aplikację CLI jak putclip??

 2
Author: rshdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-25 14:58:17

Cóż, wszystkie te podejścia są interesujące, jednak jako leniwy programista używam Yank all line używając kombinacji liczby + y

Na przykład Masz plik kodu źródłowego zawierający łącznie 78 linii, możesz zrobić to jak poniżej:

  1. gg Aby uzyskać kursor w pierwszej linii
  2. insert 78 + y -- > wyświetla 78 linii pod kursorem i bieżącą linią
 2
Author: arfo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-15 19:48:38

Jeśli twoje palce są domyślne CTRL-A CTRL-C, spróbuj odwzorować z $VIMRUNTIME/mswin.vim.

" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

Mam je odwzorowane na <Leader><C-a> i <Leader><C-c>.

 2
Author: go2null,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-27 17:57:39

Tutaj jest polecenie mapy, aby zaznaczyć wszystkie do schowka za pomocą CTRL+a :

"
" select all with control-a
"
nnoremap <C-a> ggmqvG"+y'q

Dodaj go do swojego .vimrc i jesteś gotowy...

 1
Author: jahroy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-21 00:27:37

Skopiuj cały plik wewnątrz Vima lub jego tabulatorów

y G 

Następnie przejdź do zakładki i wklej przez

p

I aby wyciąć cały plik użyj

d G
 1
Author: Abdul Basit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-23 18:09:09

Nie mogłem skopiować plików używając powyższych odpowiedzi, ale mam putty i znalazłem obejście na Quora.

  1. Zmień ustawienia sesji PuTTY, przejdź do logowania i zmień ją na "drukowalne znaki". Ustaw plik dziennika
  2. Zrób kot z odpowiedniego pliku
  3. Przejdź do pliku, który ustawiłeś w kroku # 1, a będziesz miał swoją zawartość w pliku dziennika.

Uwaga: kopiuje wszystkie wydrukowane znaki z tej sesji do pliku dziennika, więc w końcu będzie duży. W tym case, usuń plik dziennika i skopiuj plik docelowy, aby uzyskać zawartość tego pliku skopiowaną na komputerze.

 0
Author: lucifer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-31 06:50:24

Stworzyłem funkcję do wykonania tej akcji, umieść ją na swoim ~/.vimrc.

fun! CopyBufferToClipboard()
    %y+
endfun
nnoremap <Leader>y :call CopyBufferToClipboard()<CR>
command! -nargs=0 CopyFile :call CopyBufferToClipboard()

OBS: jeśli używasz neovima, potrzebujesz również menedżera schowka, takiego jak xclip. aby uzyskać więcej informacji wpisz neovim :h checkhealth

Ważne jest również, aby wspomnieć, że nie zawsze prosty y będzie kopiować do schowka, aby każdy kanał kopiowania + który jest "rejestr schowka" spróbować ustawić: :set clipboard=unnamed,unnamedplus. Informacje o mor znajdują się w: :h unnamed.

Tutaj więcej informacji o vim wikia.

 0
Author: SergioAraujo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-16 13:17:12

Kliknij lewym przyciskiem myszy, przeciągnij sekcję, którą chcesz skopiować i zwolnić. Kod zostanie automatycznie skopiowany do schowka.

 -2
Author: Kapeel Kokane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-20 11:35:32