Wenn ich diesen Text in vim habe und der Cursor auf dem ersten Zeichen steht:
www.foo.com
Ich weiß, dass ich Folgendes kann:
cw
bis zum ersten Punkt zu ändern, da einword
(Kleinbuchstabe w) an einer Interpunktion ODER einem Leerzeichen endetcW
die ganze Adresse zu ändern, weil einWord
(Großbuchstabe w) nur mit Leerzeichen endet
Was ist, wenn ich das habe:
stupid_method_name
und wollen das ändern?
awesome_method_name
Beides cw
und cW
das Ganze ändern, aber ich möchte nur das Fragment vor dem Unterstrich ändern.
Meine Fallback-Technik c/_
bedeutet "Ändern, bis Sie den nächsten Unterstrich in einer Suche treffen", aber für mich bedeutet dies auch, dass alle Unterstriche als Suchbegriffe hervorgehoben werden, was etwas ärgerlich ist.
Gibt es einen Bezeichner wie w
oder W
der keine Unterstriche enthält?
:nohl
?Antworten:
Sie können es tun
cf_
. f hebt das gesuchte Zeichen nicht hervor.Sie können dies auch tun,
ct_
wenn Sie das _ nicht einschließen möchten.quelle
f
weiter zum Charakter.F
bewegt sich rückwärts zum Charakter;t
bewegt sich vorwärts bis kurz vor den Charakter; undT
bewegt sich rückwärts zu dem Zeichen rechts neben dem Zielzeichen. Also sollte Ihr zweites Beispiel gewesen seinct_
.ct_
ist genau das, was ich wollte. Dies ist jetzt Teil meines regulären Arbeitsablaufs geworden. Vielen Dank!Fügen Sie dies in Ihre .vimrc ein:
set iskeyword-=_
Dann wird _ als Wortgrenze behandelt (obwohl keine WORD-Grenze), und cw könnte verwendet werden, um nur "awesome" zu ändern, und cW, um das Ganze zu ändern.
Sehen:
:help iskeyword
und
:help word
Für mehr Information.
quelle
ct_
das Doubleface ist.camelcasemotion ist ein ziemlich praktisches vim-Plugin, mit dem Sie sich durch Wörter bewegen können, wenn Sie die Unterstreichungs- oder Kamelfallnotation verwenden. Mit diesem Plugin können Sie ein Komma vor viele der herkömmlichen vim motion-Befehle setzen, mit denen Sie Wörter in Unterstrich- oder Kamelfallnotation als vollständige Wörter behandeln können.
quelle