Gibt es eine Möglichkeit, alle Zeilen aus der geöffneten Datei in die Zwischenablage im VI-Editor zu kopieren? Ich habe es versucht, yGaber es wird keine Zwischenablage zum Speichern dieser Zeilen verwendet.
Also ist es möglich?
vim
editor
keyboard-shortcuts
vi
Xinus
quelle
quelle
Antworten:
Sie sollten den Text in die Register
*
oder ziehen :+
gg"*yG
Erläuterung:
gg
um den Cursor auf das erste Zeichen der Datei zu bewegen"*y
um*
von der ersten Zeile an einen Ruckbefehl in das Register zu starten , bis ...G
um das Ende der Datei zu gehenquelle
"
.:version
vim aus und suchen Sie nach der+xterm_clipboard
Flagge. Wenn ein Minuszeichen vorangestellt ist, verfügen Sie nicht über diese Funktionalität. In diesem Fall möchten Sie möglicherweise vim selbst kompilieren oder gvim ausführen, für das diese Funktion normalerweise aktiviert ist.Verwenden:
:%y+
alle Zeilen ziehen.
Erläuterung:
%
um auf den nächsten Befehl zu verweisen, der in allen Zeilen ausgeführt werden solly
diese Zeilen zu ziehen+
in die Systemzwischenablage kopierenNB : In Windows
+
und*
gleichwertig siehe diese Antwort .quelle
:help
um sicherzustellen, dass Sie tatsächlich in vim sind.set clipboard=unnamed
, aber dann hat das super funktioniert!E850: Invalid register name
:(auf dem Mac
Ausgewähltes Teil kopieren: Text visuell auswählen (Typ
v
oderV
im normalen Modus) und eingeben:w !pbcopy
Kopieren Sie die gesamte Datei
:%w !pbcopy
Vergangenheit aus der Zwischenablage
:r !pbpaste
quelle
pbcopy
ist ein Mac-Dienstprogramm. Funktioniertxsel
möglicherweise stattdessen unter Linux oderclip
unter Windows.:%w !pbcopy
funktioniert immer noch, wenn die Datei länger als die Höhe des Terminals ist.Die Zwischenablage ist Puffer +. Um in die Zwischenablage zu kopieren, tun Sie "+yund [Bewegung].
So gg"+yGwird die gesamte Datei kopieren.
Ebenso zum Einfügen aus der Zwischenablage, "+p
quelle
Eine andere einfache Möglichkeit, die gesamte Datei zu kopieren, wenn Sie Probleme mit der Verwendung von VI haben, ist die Eingabe von "cat filename". Die Datei wird auf dem Bildschirm angezeigt, und Sie können einfach nach oben und unten scrollen und kopieren / einfügen.
quelle
:!cat %
. Und um den Inhalt der Datei programmgesteuert in die Zwischenablage unter Mac OS zu kopieren::!cat % | pbcopy
Dies ist, was ich tue, um die gesamte Datei zu ziehen:
quelle
clipboard
Set hätte, in das er den zerrissenen Text kopieren könnte+
.Sie können den Befehl "cat" verwenden, um die Datei zu öffnen und mit der Maus zu kopieren
quelle
reset
das Terminal vorher, dann alle auswählen und kopieren. Dies funktioniert während derssh
Sitzung.(als Antwort auf @rshdev und um zu vermeiden, dass vim in Kommentaren zu OP mit + xterm_clipboard per @nelstrom neu kompiliert werden muss)
Es gibt ein Programm namens xclip, das wie Putclip unter Ubuntu 11 funktioniert:
Es ist nicht standardmäßig installiert. Verwenden Sie zum Installieren:
quelle
Unter Ubuntu 12
Sie könnten versuchen, das
vim-gnome
Paket zu installieren :Ich habe es versucht, weil
vim --version
mir gesagt wurde, dass das Flag xterm_clipboard deaktiviert sein würde (angezeigt durch - ), das für die Verwendung der Zwischenablage-Funktionalität erforderlich ist.-> Bei der Installation des vim-gnome- Pakets unter Ubuntu 12 wurde auch eine konsolenbasierte Version von vim installiert, für die diese Option aktiviert ist (angezeigt durch ein + vor dem xterm_clipboard-Flag).
Unter Arch Linux
Sie können
vim-clipboard
aus dem gleichen Grund installieren .Wenn Sie neovim ausführen, sollten Sie installieren
xclip
(wie von erklärthelp clipboard-tool
)quelle
Wenn Sie Vim im visuellen Modus verwenden, gelten zumindest unter Windows auch die Standardtasten zum Ausschneiden und Einfügen.
Zumindest unter dem Ubuntu-Terminal (Gnome) funktioniert auch die Standardkopie ( CTRLSHIFTCobwohl es anscheinend keine Standardtastenkürzel für gibt
select all
(außer ALTEgefolgt von A).quelle
Sie können gg drücken, um Ihren Cursor an den Anfang der Datei zu bringen, und dann yG drücken, um den gesamten Inhalt von Anfang bis Ende (G gefunden) in buffer.good zu kopieren. Viel Glück!
quelle
Ich habe einige der Befehle ausprobiert, die oben erwähnt wurden. Keiner hat funktioniert. Dann habe ich den einfachsten von allen gefunden.
Schritt 1:
vi <filename>
Schritt 2: Klicken Sie mit der rechten Maustaste auf die Titelleiste des Putty-Fensters.
Schritt 3: Wählen Sie "Scrollback löschen" (um das Kopieren des Restes Ihrer SSH-Sitzung zu vermeiden).
Schritt 4: Klicken Sie erneut mit der rechten Maustaste und wählen Sie "Alle in Zwischenablage kopieren".
quelle
Window > Settings > lines of scrollback
auf 40000 erhöhen (auch verfügbar, indem ich mit der rechten Maustaste auf die Titelleiste klicke). Es ist auch hilfreich,cat
anstelle von vi zu verwenden, da hierdurch der gesamte Text gescrollt wird.:%y a
Zieht den gesamten Inhalt in den Puffer von vim. Durch Drückenp
im Befehlsmodus wird der gezogene Inhalt nach der Zeile eingefügt, auf der sich Ihr Cursor gerade befindet.quelle
gVim:
ggVG
Siehe
:help go-a
:quelle
Nun, all diese Ansätze sind interessant, aber als fauler Programmierer benutze ich Yank All Line, indem ich eine Kombination aus Zahl + verwende
y
Sie haben beispielsweise eine Quellcodedatei mit insgesamt 78 Zeilen. Sie können Folgendes tun:
gg
um den Cursor in der ersten Zeile zu erhalteny
-> es zieht 78 Zeilen unter den Cursor und die aktuelle Zeilequelle
In Bill Joys vi gab es kein Konzept für "Zwischenablage", daher glaube ich nicht, dass es eine integrierte Möglichkeit gibt, dies zu tun.
Die automatische Funktion zum Kopieren von hervorgehobenen Elementen in die Zwischenablage von gVim ist am einfachsten oder Sie verwenden ein externes Programm über :!
Für Cygwins vim benutze ich
Vielleicht hat Ubuntu eine CLI-App wie Putclip?
quelle
Wenn Ihre Finger standardmäßig verwenden
CTRL-A CTRL-C
, versuchen Sie es mit den Zuordnungen von$VIMRUNTIME/mswin.vim
.Ich habe sie auf
<Leader><C-a>
und abgebildet<Leader><C-c>
.quelle
Kopieren Sie die gesamte Datei in das vim oder seine Registerkarten
Gehen Sie dann zu einer Registerkarte und fügen Sie sie ein
und um die gesamte Datei zu schneiden, verwenden Sie
quelle
Ich habe die folgende Zeile zu meiner .vimrc hinzugefügt
Dadurch kann ich den gesamten Text in Vim durch Drücken von
F5
(im Befehlsmodus) in die Zwischenablage kopieren .quelle
Hier ist ein Kartenbefehl, mit dem Sie alle mit CTRL+ in die Zwischenablage auswählen können a:
Fügen Sie es Ihrer .vimrc hinzu und Sie können loslegen ...
quelle
Ich weiß, dass zehn Jahre darauf geregelt werden sollten, aber die ersten beiden Antworten haben bei mir nicht funktioniert, also habe ich weiter gegraben. Wenn Sie auf einem Redhat (Remote-Server) - Windows 10 (lokaler Computer) das Ganze nicht mit der Maus auswählen können, stecken Sie fest, da die üblichen Kopien nicht zwischen den Zwischenablagen des Remote- und des lokalen Computers funktionieren.
Geben Sie zum Kopieren auf dem Remote-Linux und zum Einfügen unter dem lokalen Windows den primären Puffer mit dem an *Um einzufügen und führen Sie einen schönen Doppelzug aus
Verwenden Sie gg" * yy.
quelle
Ich habe eine Funktion erstellt, um diese Aktion auszuführen. Platzieren Sie sie auf Ihrer
~/.vimrc
.OBS: Wenn Sie neovim verwenden, benötigen Sie auch einen Zwischenablage-Manager wie xclip. Für weitere Informationen geben Sie neovim ein
:h checkhealth
Es ist auch wichtig zu erwähnen, dass nicht immer eine einfache
y
Kopie in die Zwischenablage kopiert wird, um zu+
versuchen , jeden Kopier-Feed , der "Zwischenablage-Register" ist, einzustellen ::set clipboard=unnamed,unnamedplus
. Weitere Informationen finden Sie unter ::h unnamed
.Hier mehr Informationen zu vim wikia.
quelle
Sie können einen Shortcur wie diesen verwenden:
Wenn Sie F6 im normalen Modus drücken, wird die gesamte Datei kopiert und der Zwischenablage hinzugefügt. Oder Sie können einfach im normalen Modus tippen
:%y+
und dann drückenEnter
.quelle
Klicken Sie mit der linken Maustaste und ziehen Sie über den Abschnitt, den Sie kopieren und freigeben möchten. Der Code wird automatisch in die Zwischenablage kopiert.
quelle
vi
.Ich konnte mit den obigen Antworten keine Dateien kopieren, aber ich habe Kitt und eine Problemumgehung für Quora gefunden.
Hinweis: Es werden alle gedruckten Zeichen dieser Sitzung in die Protokolldatei kopiert, sodass sie irgendwann groß wird. Löschen Sie in diesem Fall die Protokolldatei und ordnen Sie die Zieldatei zu, damit der Inhalt dieser bestimmten Datei auf Ihren Computer kopiert wird.
quelle