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.

Antworten:


174

versuchen zu benutzen

<ctrl+r>"

Dabei steht "für Standardregister.


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:


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


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

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> *

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

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.