In VIM ist es möglich, den ausgewählten Text in der Ersatz-Klausel zu verwenden, ohne es erneut eingeben?

StackOverflow https://stackoverflow.com/questions/1477652

  •  16-09-2019
  •  | 
  •  

Frage

Lassen Sie uns sagen, dass ich ein Wort im visuellen Modus ausgewählt haben. Ich mag eine Substitution an diesem Wort und alle anderen Instanzen dieses Wortes in einer Datei // s unter Verwendung auszuführen. Gibt es einen Weg, um den markierten Text in dem s/<here>/stuff/ Teil zu verwenden, ohne dass es erneut eingeben?

War es hilfreich?

Lösung

Klar. Wenn Sie das Wort ausgewählt, nur „y“ ank, und dann Typ:

:%s/<ctrl-r>"/something else/g

Wo drückt Strg-Taste mit Taste r, und „nur“ Charakter.

Alle Tastenfolgen:

y:%s/<ctrl-r>"/what to put/g<enter>

Andere Tipps

Wenn Sie Ihren Text gesucht, bevor Sie verwenden können,

  

STRG + R /

die letzte Suchbegriff in der Suche ein und String ersetzen.

Sie können prüfen, diese Seite für andere ähnliche Tricks:

http://www.vim.org/htmldoc/insert.html

Sie haben das Wort nicht reißen, setzen Sie den Cursor auf das Wort und dann:

:%s/<C-r><C-w>/bar/g

Eine andere Möglichkeit, Inhalte von der Kommandozeile für den Zugriff auf Register wird über @ Variablen. Also, wenn Sie Text in das Standardregister zerren, wird es in einer Variablen namens @" sein.

:exe '%s/' . @" . '/stuff/'

Hier ist eine Abbildung dieser leicht zu machen eingeben:

vmap <Leader>s y:exe '%s/' . @" . '//g'<Left><Left><Left>

Jetzt können Sie etwas im visuellen Modus, geben Sie \s markieren, geben Sie Ihren Ersatz und traf Enter. depesz 's-Version macht auch eine gute Mapping (fast genau so, wie er es getippt):

vmap <Leader>s y:%s/<c-r>"//g<Left><Left>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top