2012-11-06 22 views
10

Oft finde ich, dass ich will den Inhalt zwischen Anführungszeichen zu zerren und sie in einem anderen Set von Anführungszeichen einfügen. Nehmen wir zum Beispiel diesen Code.Vim ersetzen in Anführungszeichen

var foo = 'bar', 
    baz = 'buz'; 

würde ich normalerweise eine yi' innerhalb von 'bar' tun das Wort bar zu zerren.

Wie ersetze ich buz mit meinem Yank? Ich weiß, eine Option ist eine di'"0P zu tun, ich frage mich nur, ob es eine einfachere Lösung ist, die ich übersehe.

Antwort

22

Mit Ihrem Cursor irgendwo auf dem Wort buz, vi'p, um innerhalb der Anführungszeichen visuell auszuwählen und dann den Inhalt des letzten Ziehens zu setzen.

+0

Sie rocken ... danke! –

+1

@ShaneStillwell, lesen Sie ': help text-objects', um zu lernen, wie das funktioniert. Außerdem könnte Ihnen das Plugin 'Surround' gefallen: http://goo.gl/s9x4F. –

+1

funktioniert es auch, wenn der Cursor auf dem Anführungszeichen steht '' ' –

2

Ich brauche das so oft, ich schrieb ein Plugin zu vereinfachen und maximale Geschwindigkeit zu ermöglichen: ReplaceWithRegister.

Dieses Plugin bietet einen Zwei-in-Eins-Befehl gr, der Text ersetzt durch ein {Bewegung}/Text-Objekt, ganze Zeile (n) oder die aktuelle Auswahl mit dem Inhalt eines Registers; der alte Text wird in das Schwarzlochregister gelöscht, d. h. es ist weg. Es behandelt transparent viele Ecken und ermöglicht eine schnelle Wiederholung über den Standard-Befehl .. Wenn Sie es nicht mögen, hat seine Seite Links zu Alternativen.

+0

Ich denke, ich könnte mich daran gewöhnen. Also das ist sowohl ein positives als auch ein Risiko :) – sehe

0

Beachten Sie auch, nachdem Sie den Inhalt im visuellen Modus ersetzen, wird der Inhalt, der ersetzt wird, jetzt in Ihnen registriert. Befehl: reg wird es zeigen. In Ihrem Beispiel wird der Befehl die buz in den Editor einfügen.

Verwandte Themen