Ich habe versucht, Ctrl+ Vzum Einfügen von Inhalten in ein vi-Editor-Dokument zu verwenden, aber Ctrl+ Vwird nicht als Paste interpretiert.
Ich habe versucht, Ctrl+ Vzum Einfügen von Inhalten in ein vi-Editor-Dokument zu verwenden, aber Ctrl+ Vwird nicht als Paste interpretiert.
Antworten:
Stellen Sie zunächst sicher, dass Sie sich im Bearbeitungsmodus befinden (drücken Sie i). Dann können Sie mit Ctrl+ Shift+ einfügen V, wenn Sie sich in einem Terminal-Emulator wie gnome-terminal
(oder wählen Sie "Einfügen" aus dem Kontextmenü).
Sie können auch :set paste
vim vor dem Einfügen eingeben, um das automatische Einrücken usw. zu deaktivieren. Anschließend können :set nopaste
Sie den Inhalt einfügen.
Überprüfen Sie auch diese Frage auf stackoverflow.com für weitere Informationen.
Wenn Sie Zeilen kopieren / einfügen möchten vim
(im Gegensatz zum Einfügen von Inhalten aus der Zwischenablage), müssen Sie den Befehl yank auschecken . Hier ist ein Spickzettel , der helfen könnte.
I
Groß- und Kleinschreibung ist wichtig. Die Kleinschreibung i
ist die normale Art, in den Einfügemodus zu wechseln. Großbuchstaben I
bringen den Cursor an den Anfang der Zeile und rufen dann den Einfügemodus auf.
Vi (und Vim) funktionieren ganz anders als ein normaler Texteditor wie Gedit. Es hat auch eine ziemlich steile Lernkurve. Wenn Sie einige grundlegende Befehle erlernen möchten, beginnen Sie mit diesem interaktiven Lernprogramm .
Um Ihre Frage zu beantworten. Auf den Inhalt der Systemzwischenablage kann über das Plus-Register zugegriffen werden. Um also etwas aus der System-Zwischenablage einzufügen, können Sie im normalen Modus Folgendes drücken: "+p(Nicht gleichzeitig, sondern nacheinander).
vi
nichtvim
set :paste
).
Wenn Sie Inhalte innerhalb derselben Datei einfügen möchten , verwenden Sie yank
und paste
.
Wenn Sie Inhalte terminalübergreifend einfügen möchten, öffnen Sie die erste Datei mit dem gewünschten Text, öffnen Sie dann Ihre zweite Datei in vim (z. B. :tabnew /path/to/second/file
) und drücken Sie, um sie einzufügen p
.
Wenn Sie Inhalte von vim in ein externes Programm kopieren möchten , müssen Sie auf die Systemzwischenablage zugreifen. Ich gehe davon aus, dass Sie Ubuntu verwenden. Die GUI-Version von Vim unterstützt immer die Zwischenablage. Wenn Sie Vim jedoch von einem Terminal aus verwenden möchten, müssen Sie die X11-Zwischenablage-Unterstützung überprüfen.
Geben Sie an der Konsole Folgendes ein:
$ vim --version | grep xterm
Wenn Sie -xterm_clipboard finden , haben Sie zwei Möglichkeiten:
1) Kompilieren Sie vim selbst mit eingeschaltetem xterm_clipboard-Flag
2) Deinstallieren Sie vim und installieren Sie stattdessen gvim (vim-gtk oder vim-gnome). Sie können sich an Nicht-GUI-VIM halten, indem Sie VIM vom Terminal aus aufrufen, so wie Sie es zuvor getan haben. Wenn Sie diesmal nachsehen, sollten Sie + xterm_clipborad finden .
Wenn Sie jetzt einen Text in das + -Register in Ihrem VIM-Editor ziehen (z. B. "+ yy"), wird dieser ebenfalls in die System-Zwischenablage kopiert, die Sie mit Ctrl+ aus Ihrem externen Programm wie gedit editor abrufen können V.
Wenn Sie Inhalte aus einem externen Programm in vim einfügen möchten, kopieren Sie Ihren Text zuerst über Ctrl+ Cin die Systemzwischenablage . Klicken Sie dann im Einfügemodus des vim-Editors mit der mittleren Maustaste (normalerweise mit dem Rad) oder drücken Sie zum Einfügen Ctrl+ Shift+ V.
Dies sind 4 grundlegende Kopier- und Einfügebedingungen für vim. Ich hoffe das hilft.
vim-gtk
hat xterm_clipboard
Unterstützung und auf Fedora xvim
hat es.
Ich benutze immer Shift+, Insertwenn ich Text in das Terminal einfügen möchte, funktioniert in allen Terminalprogrammen.
(Das ist auch der Grund, warum ich nie einen Laptop bekomme, auf den man nicht drücken kann, Insertohne eine Sekundärtaste zu drücken.)
Vi
/ Vim
! = terminal;)
Ctrl+A
, Ctrl+C
auch?
Sobald Sie vi eingegeben haben, drücken Sie i
, um in den Einfügemodus zu gelangen, klicken Sie mit der rechten Maustaste in das Terminal und klicken Sie auf Einfügen.
i
. Was macht Großbuchstaben I
?
i
. Großbuchstaben I
bewegen den Cursor an den Zeilenanfang, bevor Sie in den Einfügemodus wechseln, der hier nicht benötigt wird.
Detaillierte Anweisungen zum Kopieren / Einfügen von Textzeilen in vi mit yank
undput
(Verwenden Sie die folgenden Befehle im Befehlsmodus von vi)
Kopieren (YANK)
So kopieren Sie eine Zeile in vi:
yy
oder geben Sie einY
So kopieren Sie 2 Zeilen in vi:
2yy
oder geben Sie ein2Y
(Ebenso können beliebig viele Zeilen kopiert werden)
So kopieren Sie alle Zeilen vom aktuellen Speicherort bis zum Ende der Datei:
yG
So kopieren Sie den gesamten Text von der aktuellen Position bis zum Ende des aktuellen Wortes:
yw
So kopieren Sie den gesamten Text von der aktuellen Position bis zum Zeilenende:
y$
Einfügen (PUT)
So fügen Sie Text in die Zwischenablage ein - nach der Position des Cursors:
p
So fügen Sie Text in die Zwischenablage ein - vor der Position des Cursors:
P
Ich hatte ein Problem, weil meine Vim-Installation die Zwischenablage nicht unterstützte :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Ich habe vim-gnome (das die Zwischenablage unterstützt) installiert und dann noch einmal überprüft:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Jetzt kann ich mit "+ y" und "+ p" kopieren und einfügen.
Mit Vim 8+ unter Linux oder Mac können Sie jetzt einfach die native Paste des Betriebssystems verwenden ( ctrl+shift+V
unter Linux und cmd+V
Mac). Drücken Sie nicht i
für den Einfügemodus.
Der Inhalt der Zwischenablage Ihres Betriebssystems wird eingefügt, die Leerzeichen und Tabulatoren bleiben erhalten, ohne dass ein automatischer Einzug hinzugefügt wird. Es ist gleichbedeutend mit dem alten :set paste
, i
, ctrl+shift+V
, esc
, :set nopaste
Methode.
Sie müssen nicht einmal die +clipboard
oder +xterm_clipboard
vim-Funktionen mehr installieren. Diese Funktion wird als "Einfügen in Klammern" bezeichnet. Weitere Informationen finden Sie unter https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763
Wenn du root bist : Ctrl+ Shift+V
Wenn Sie nicht als Root angemeldet sind : Klicken Sie mit der mittleren Maustaste.
Ich wollte nur darauf hinweisen, dass Sie mit Vim über Git Bash unter Windows nur p
die Maus verwenden oder mit der mittleren Maustaste klicken können, ohne sich im Einfügemodus zu befinden. Mit Vim über PuTTY können Sie einfach mit der rechten Maustaste klicken. Und das Markieren macht das Kopieren.
Ich habe dies bemerkt, weil ich hier nicht gesehen habe, dass dies SE für Ubuntu ist.
Andere hilfreiche Befehle:
Sie könnten verwenden Ctrl+ Shift+ Vin Terminalversion vim einzufügen, aber für die GUI - Version vim wie Neovim-Qt
, Einfügen von Text aus der Zwischenablage mit Ctrl+ Shift+ Vwird einfach nicht funktionieren. Sie müssen auf die Zwischenablage "+
oder "*
den VIM-Editor zugreifen .
Durch Hinzufügen einer neuen Tastenkombination .vimrc
werden einfach die Befehle zum Kopieren / Einfügen ausgeführt:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutor
In etwa 45 Minuten sind Sie so auf dem Laufenden, wo es für Sie brauchbar ist.