So kopieren Sie gerissenen Text an die VI-Eingabeaufforderung

118

Ich möchte wissen, ob es eine Möglichkeit gibt, zerrissenen Text in das Befehlsfenster einzufügen. Wenn ich zum Beispiel ein Wort gerissen habe und es an einer Stelle ablesen möchte, kann ich das Wort nicht einfach mit 'p' einfügen. Wenn ich es jedoch in die Zwischenablage kopiere, fügt Shift-Insert dasselbe ein.

Gibt es eine Optimierung, mit der ich zerrissenen Text in die vim-Eingabeaufforderung einfügen kann?

Ich benutze gvim unter Windows.

Canopus
quelle

Antworten:

174

versuchen zu benutzen

<ctrl+r>"

Dabei steht "für Standardregister.

Mykola Golubyev
quelle
7
Beachten Sie, dass dies auch im normalen Einfügemodus funktioniert, nicht nur in der Befehlszeile.
user55400
25
Wenn Sie *stattdessen verwenden ", erhalten Sie stattdessen den Inhalt der System-Zwischenablage (was nützlich sein kann).
Dash-Tom-Bang
40

<C-R>"Fügt den Standardpuffer ein. Alternativ können Sie q:einen Puffer für den nächsten Befehl öffnen. Versuchen:help q:

Soulmerge
quelle
10
Heiliger Mist, q:ist mehr als fantastisch
Hubro
19
  • Stellen Sie zunächst sicher, dass Sie sich im normalen Modus befinden, indem Sie drücken Esc
  • Drücken Sie im normalen Modus :
  • Verwenden Sie dann die Tastaturkombination ctrl-rund geben Sie ein"

Hinweis: Wenn Sie eine vollständige Zeile mit dem relativen Dateipfad ziehen, wird der Zeilenvorschub ebenfalls eingefügt ... dh :! touch src/bash/script.sh^M

Wird einen "lustigen Dateipfad" erstellen, der das "\ r" enthält, wenn Sie den letzten nicht entfernen ^M...

Turm
quelle
13

Verwenden Sie: Wenn sich Ihr Cursor auf dem Wort befindet, das Sie in Ex verwenden möchten, verwenden Sie:

 <ctl-r><ctl-w>

Dadurch wird vermieden, dass Sie in die Befehlszeile einfügen müssen. Stattdessen fügt man das Wort unter dem Cursor direkt in die Befehlszeile ein. Z.B:

:%s/<ctl-r><ctl-w>/foo/g
Gregory
quelle
5

Wenn es nur ein Wort ist, das Sie kopieren möchten, können Sie es verwenden <C-r><C-w>

  1. Bewegen Sie den Mauszeiger über das Wort
  2. Dann können Sie so etwas eingeben :vim <C-r><C-w> *
SysCoder
quelle
3

Sie können mit dem *benannten Puffer in die Zwischenablage ziehen . Dadurch wird beispielsweise die aktuelle Zeile in die Zwischenablage kopiert:

"*yy

Sie können also eine Zeile damit kopieren und sie dann mit Shift-Insert in die Befehlszeile einfügen.

Ebenso können Sie wie folgt aus der Zwischenablage einfügen:

"*p
Nathan Fellman
quelle
2

Die Zwischenablage +zumindest auf dem Mac. Sie würden also schreiben "+yy, um eine Zeile in die Zwischenablage zu ziehen und einzufügen "+p. Sie können jedoch immer Command-C und Command-V verwenden.

ABC
quelle