Frage

Gibt es eine Möglichkeit, alle Zeilen aus geöffneter Datei zu kopieren, in VI-Editor in der Zwischenablage kopieren. Ich habe versucht, y G aber es wird nicht mit Zwischenablage diese Zeilen zu speichern.

So ist es möglich?

War es hilfreich?

Lösung

Sie sollten den Text in die * oder + Register :

g g " * y G

Erklärung:

  • gg den Cursor auf das erste Zeichen der Datei erhalten
  • "*y einen Ruck Befehl in das Register * von der ersten Zeile zu beginnen, bis ...
  • G das Ende der Datei gehen

Andere Tipps

Verwendung:

: % y +

alle Zeilen zerren.

Erklärung:

  • % den nächsten Befehl verweisen auf allen Linien arbeiten
  • y diese Zeilen
  • zerren
  • + in die Zwischenablage kopieren

NB . In Windows + und * sind äquivalent diese Antwort

auf Mac

  • Kopieren ausgewählter Teil: visuell Text auswählen (Typ v oder V in normalen Modus) und Typ :w !pbcopy

  • Kopieren Sie die gesamte Datei :%w !pbcopy

  • Vergangenheit aus der Zwischenablage :r !pbpaste

Die Zwischenablage ist Puffer + . Zum Kopieren in die Zwischenablage, tun " + y und [Bewegung].

So g g " + y G wird die gesamte Datei kopiert werden.

In ähnlicher Weise einfügen aus der Zwischenablage, " + p

Eine weitere einfache Möglichkeit, die gesamte Datei zu kopieren, wenn Sie Probleme bei der Verwendung VI haben, ist es nur durch „cat Dateinamen“ eingeben. Es wird die Datei Echo zu screenen und dann können Sie nur nach oben und unten und Kopieren / Einfügen.

Das ist, was ich tun, um die gesamte Datei zu zerren:

ggVGy

(in Antwort auf @rshdev, und um zu vermeiden, vim neu kompiliert mit + xterm_clipboard pro @nelstrom in den Kommentaren auf OP)

gibt es ein Programm namens xclip, die 11 wie putclip auf Ubuntu funktioniert:

:%!xclip -sel clip
u

es wird nicht standardmäßig installiert. zu installieren, zu verwenden:

sudo apt-get install xclip

Auf Ubuntu 12

Sie könnten versuchen, zu installieren, die vim-gnome Paket:

sudo apt-get install vim-gnome

ich es versucht, weil vim --version mir gesagt, dass es unter der Flagge hätte xterm_clipboard deaktiviert (durch - ), die benötigt wird, um die Zwischenablage-Funktionalität zu nutzen.

-> Installation der vim-gnome Paket auf 12 Ubuntu installierte auch eine Konsole basierte Version von vim, dass diese Option aktiviert ist (durch ein + vor der xterm_clipboard flag)

Auf Arch Linux

Sie können installieren vim-clipboard aus dem gleichen Grund.

Sie können „cat“ Befehl Datei zu öffnen und verwenden Sie die Maus kopieren

Wenn Sie mit Vim im visuellen Modus, die Standard-Ausschneiden und Einfügen-Tasten auch dann, zumindest unter Windows.

  • STRG A bedeutet „Markieren Sie die gesamte Datei.
  • STRG C bedeutet „die Auswahl kopieren.
  • ESC bedeutet „De-select, so Ihren nächsten Tastendruck wird die gesamte Datei nicht ersetzt werden: -)

Unter Ubuntu-Terminal (Gnome) zumindest die Standardkopier funktioniert auch ( STRG SHIFT C , obwohl es scheint nicht zu sein, ein Standard-Tastaturkürzel für select all (außer ALT E gefolgt von A ).

Sie gg Sie den Cursor an den Anfang der Datei drücken können, ausfindig zu machen, drücken Sie dann yG alle Inhalte von Anfang bis zum Ende kopieren (G liegt) Glück buffer.good!

Ich habe versucht, einige der Befehle, die Leute oben erwähnt haben. Keine gearbeitet. Dann bekam ich halten einfachsten von allen.

Schritt 1: vi <filename>
Schritt 2: Rechtsklick auf die Titelleiste des Fensters Putty
Schritt 3: Wählen Sie „Speicher leeren“ (um zu vermeiden, den Rest Ihrer SSH-Sitzung zu kopieren)
Schritt 4: Recht erneut auf und wählen Sie „alle Zwischenablage kopieren“.

:%y a Amis alle Inhalte in vim-Puffer, Durch Drücken p im Kommando-Modus wird die zerrte Inhalt nach der Zeile einzufügen, die Sie den Cursor derzeit steht.

gVim:

:set go=a

g g V G

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

Es gab kein Konzept der „Zwischenablage“ in Bill Joy vi so dass ich glaube nicht, gibt es eine eingebaute Möglichkeit, es zu tun.

gVim automatische Kopie-alles-markierten-to-the-Zwischenablage-Funktion ist am einfachsten, oder verwenden Sie ein externes Programm über:

Für Cygwin vim Ich benutze

:%!putclip
u

Vielleicht hat Ubuntu eine CLI-App wie putclip ??

Nun, alle diese Ansätze sind interessant, aber als faul Programmierer verwende ich yank alle Linie durch eine Kombination von Nummer mit + y

Sie zum Beispiel Quellcodedatei mit insgesamt 78 Linien haben, können Sie wie unten tun:

  1. gg Cursor auf dem ersten Linie zu bekommen
  2. insert 78 + y -> es zerrt 78 Zeilen unter dem Cursor und aktuelle Zeile

Wenn Sie Ihre Finger auf CTRL-A CTRL-C Standard, dann versuchen Sie die Zuordnungen von $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

Ich habe sie zugeordnet <Leader><C-a> und <Leader><C-c>.

Sie die gesamte Datei innerhalb des vim oder seine Registerkarten kopieren

y G 

dann auf eine Registerkarte und Einfügen verschieben, indem

p

und die gesamte Datei verwenden schneiden

d G

Hier ist eine Karte Kommando alle in die Zwischenablage wählen mit STRG + a :

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

Fügen Sie es zu Ihrem .vimrc und du bist gut zu gehen ...

Ich weiß, 10 Jahre auf diese geregelt werden sollte, aber die ersten beiden Antworten hat nicht funktioniert für mich so hielt ich zu graben. Auf einem Redhat (Remote-Server) - Microsoft Windows 10 (lokale Maschine), wenn Sie nicht die ganze Sache mit der Maus auswählen können, sind Sie stecken, weil die üblichen Kopien zwischen der Fernbedienung funktionieren nicht, und die lokalen Rechner notiz

.

, also auf dem Remote-Linux zu kopieren und auf dem lokalen Windows einzufügen, geben Sie den Primärpuffer mit dem * und einem schönen Doppel Ruck tun

Mit g g " * y y .

Ich habe die folgende Zeile in meinem .vimrc hinzugefügt

nnoremap <F5> :%y+<CR>

Dies ermöglicht es mir, den gesamten Text in Vim in die Zwischenablage zu kopieren, indem Sie F5 drücken (im Befehlsmodus).

Ich kann keine Dateien kopieren Sie die Antworten oben mit, aber ich habe Kitt und ich fand auf Quoren eine Abhilfe.

  1. Einstellungen ändern Ihrer PuTTY-Sitzung, um die Protokollierung gehen und ändern Sie ihn auf „druckbare Zeichen“. Stellen Sie die Protokolldatei
  2. Starten Sie eine Katze der jeweiligen Datei
  3. Gehen Sie auf die Datei, die Sie in Schritt # 1 gesetzt, und Sie werden Ihre Inhalte in der Log-Datei.

Hinweis: Es kopiert alle gedruckten Zeichen dieser Sitzung in die Protokolldatei, so wird es groß schließlich bekommen. In diesem Fall löschen Sie die Protokolldatei und Katze der Zieldatei, so dass Sie die betreffenden Datei Inhalt auf Ihrem Rechner kopiert erhalten.

Ich habe eine Funktion erstellt, diese Aktion auszuführen, legen Sie es auf Ihrem ~/.vimrc.

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

OBS: Wenn Sie mit neovim Sie auch einige Zwischenablage-Manager wie xclip benötigen. Weitere Informationen Typ in neovim :h checkhealth

Es ist auch wichtig zu erwähnen, dass nicht immer eine einfache y in die Zwischenablage kopiert, um jede Kopie Feed + Weicht zu machen ist „Zwischenablage Register“ versuchen zu setzen: :set clipboard=unnamed,unnamedplus. siehe mor Informationen: :h unnamed

.

Hier Weitere Informationen über vim wikia.

Klicken Sie auf die linke Maustaste, ziehen Sie über den Bereich, den Sie kopieren und freigeben möchten. Der Code automatisch in die Zwischenablage kopiert wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top