Ich bearbeite viel PHP-Code mit Vim und bin auf einen Haken mit einigen Makros gestoßen .vimrc
.
Ich benutze derzeit diese beiden Makros, um im C-Stil zu kommentieren / zu kommentieren
"c-style (//) comment (press the [.] key)
au FileType php vnoremap . :s/^\(\s*\)\(.\+\)$/\1\/\/\2/<CR>:noh<CR>gv
"c-style (//) uncomment (press the [,] key)
au FileType php vnoremap , :s/^\(\s*\)\/\//\1/<CR>:noh<CR>gv
Und diese beiden im HTML-Stil zu kommentieren / zu kommentieren
"html-style (<!-- -->) comment (press the [.] key)
au FileType html vnoremap . :s/^\(\s*\)\(.\+\)$/\1<!-- \2 -->/g<CR>:noh<CR>gv
"html-style (<!-- -->) uncomment (press the [,] key)
au FileType html vnoremap , :s/^\(\s*\)<!-- \(.*\) -->/\1\2/g<CR>:noh<CR>gv
Diese Makros funktionieren einwandfrei, wenn sie auf den beabsichtigten Dateityp angewendet werden. Da jedoch häufig HTML in eine PHP-Datei eingebettet ist, ist der PHP-Kommentarstil nutzlos.
Gibt es eine Möglichkeit für Vim, zu erkennen, ob ein Teil des HTML-Codes in einer PHP-Datei bearbeitet wird, und dann das richtige Kommentierungsverhalten anzuwenden?
Bearbeiten: Ich weiß, dass ich den Dateityp manuell einstellen kann und dass dafür Plugins verfügbar sind. Ich wollte mehr über das Schreiben besserer Makros erfahren.
Antworten:
Um das zu tun, was Sie wollen, gibt es wirklich keine Möglichkeit, eine Funktion zu schreiben und sie Ihren bevorzugten Tasten zuzuordnen.
Zunächst
:echo synIDattr(synID(line("."), col("."), 1), "name")
wird der Name der Markierungsgruppe für das aktuelle Wort unter dem Cursor gedruckt.Mithilfe dieser Informationen können Sie bestimmen, welcher Kommentarstil verwendet werden soll.
Ein grobes Beispiel für den Einstieg:
quelle
Falls Sie akzeptieren können, manuell auszuwählen, welche Art von Kommentar Sie verwenden möchten, würde ich diesen Tipp empfehlen .
Sie müssen sich 4 Kombinationen merken:
quelle