Beim Programmieren muss ich manchmal Zeichen oder Tags (in Auszeichnungssprachen) ändern, die Befehle umgeben. In Python zum Beispiel muss ich manchmal doppelte Anführungszeichen in einfache Anführungszeichen umwandeln. Das ist etwas umständlich, weil man zu den Anfangs- und Endanführungszeichen gehen und sie einzeln ersetzen muss.
Für dieses Problem gibt es eine Lösung: die surround.vim
-Erweiterung für
die Editoren Vim und Neovim. Mit ihr kann ich die Zeichen oder Tags sehr
einfach ersetzen. Um print("Hallo, Welt!")
durch
print('Hallo, Welt!')
zu ersetzen, drück einfach cs"'
im
Normalmodus innserhalb der Anführungszeichen. Ich kann auch
Anführungszeichen von Auszeichnungssprachen wie HTML ersetzen und
umgekehrt. Zum Beispiel kann ich 'Hallo, Welt!'
durch <h1>Hallo,
Welt!</h1>
ersetzen, indem ich cs'<h1>
eingebe.
Der Ersetzungsbefehl mag schwer zu merken sein, ist es aber nicht, wenn
du Englisch kannst und denkst, dass cst'
für change
surrounding tag [with] " und cs'
für change
surrounding " with ' steht.
Mit dieser Erweiterung kannst du auch um die Stelle herum, wo du dich
befindest, löschen. Wenn wir z. B. die Anführungszeichen in
print('Hallo, Welt!')
löschen wollen, müssen wir nur ds'
eingeben.
Wir können auch HTML-Tags um ein Wort oder mehrere Wörter hinzufügen.
Die Eingabe von ysiw<em>
im Normalmodus mit dem Cursor auf dem Wort
«hallo» setzt das Wort zwischen em
-Tags: <em>hallo</em>
. yss)
setzt eine Zeile, in der sich der Cursor befindet, in Klammern.
Um mehr Kontrolle über den zu umschließenden Text zu haben, kannst du
den visuellen Modus verwenden. Wenn du einen Text ausgewählt hast,
drück S und gib das Zeichen, die Bezeichnung oder die Zeichen
ein, die den Text umgeben sollen.
Was aber, wenn du einen Tag für PHP hinzufügen willst (seine Syntax ist
<?php Code ?>
)? Um dies zu tun, musst du die folgende Zeile zu unserer
Vim-Konfigurationsdatei (.vimrc
) hinzufügen: autocmd FileType php let
b:surround_45 = "<?php ?>
. Damit können wir mehrere Codezeilen mit
PHP-Tags umgeben, indem wir einen Text im visuellen Modus auswählen und
S-
drücken, falls wir mit einer in PHP geschriebenen Datei arbeiten. Wir
können eine Zeile auch im Normalmodus umschließen, indem wir yss-
drücken.
Nachfolgend gibt es einige weitere Beispiele dafür, was du mit surround.vim
machen kannst. Das in der Originaltextspalte markierte Zeichen stellt
die Cursorposition dar. Denk daran, dass der Cursor zwischen den
Anführungszeichen oder Tags stehen muss, die du ersetzen willst. Du
kannst sie in dem Video, das ich dir am Anfang dieses Artikels gezeigt
habe, in Aktion sehen.
Originaltext | Befehl | Ergebnis |
---|---|---|
"Look ma, I'm HTML!" | cs"<q> | <q>Look |
ma, I'm HTML!</q> | ||
if x>3 { | ysW( | if ( x>3 ) { |
my $str = whee!; | vllllS' | my $str = 'whee!'; |
<div>Yo!</div> | dst | Yo! |
Hallo Welt! | yssB | {Hallo Welt!} |
Kommentare