Ich habe die folgende CSS-Klassenstruktur
.mAIcon
.mAIcon-reject
.mAIcon-edit
.mAIcon-accept
.event
und so weiter.
In meinen HTML-Dateien möchte ich diese Klassennamen automatisch vervollständigen.
Aber wenn ich tippe
<span class="mAIcon mA|">
und ich möchte den Rest automatisch vervollständigen. Das einzige, was ich bekomme, ist
<span class="mAIcon mAIcon|">
Um zu bekommen, was ich wirklich will, muss ich ein Extra eingeben -
und zum Beispiel e
die automatische Vervollständigung erneut verwenden. Aber dann bekomme ich alles, was mit einem beginnt e
, sogar die Klasse event
. Das ist wirklich ärgerlich und macht die Autovervollständigung in diesem Fall ziemlich nutzlos.
Ich verwende die generische Schlüsselwortvervollständigung von Vim mit dem i_CTRL-N
Befehl und habe keine zusätzlichen Vervollständigungs-Plugins installiert.
Ist es möglich, die -
zur Erkennung von CSS-Klassennamen für die automatische Vervollständigung einzubeziehen?
quelle
<c-x><c-n>
der auch in Ihrer Frage angegeben werden sollte.'iskeyword'
, und obwohl Schlüsselwörter auch für andere Befehle (Nebenwirkungen) verwendet werden, ist dies immer noch der richtige Weg, um das zu erreichen, was Sie wollen, ohne andere Arten der (automatischen) Vervollständigung zu verwenden.ctags
dies in der Lage sein sollte, Tags für Ihr Projekt zu generieren. Dann können Sie die Tag-Vervollständigung mit durchführeni_CTRL-X_CTRL-]
. In den Dokumenten wird jedoch angezeigt, dass die Tag-Vervollständigung auch dieiskeyword
Option verwendet, sodass ich mich möglicherweise irre. In jedem Fall möchten Sie wahrscheinlich lesen:h ins-completion
.Antworten:
Ja, Sie können mit der
'iskeyword'
Option definieren, welche Zeichen als Teil von Schlüsselwörtern betrachtet werden :Sie können das folgende Snippet hinzufügen
vimrc
, um diese Option auf CSS- und HTML-Dateien zu beschränken:quelle
iskeyword
viele Nebenwirkungen hat. Zum Beispiel wirddw
onsome-text
jetzt gelöschtsome-text
, anstatt nursome
. Nicht unbedingt eine schlechte Sache, aber etwas, das man beachten muss.js
undcoffee
Dateien auch. Weil ich CSS-Klassen häufig in Javascript absolviere und selten Code habe, der eine Subtraktion ohne Leerzeichen ausführt. In Code, den ich bearbeite,diff = foo - bar;
ist häufiger alsdiff=foo-bar;
Ich habe das Problem gelöst, indem ich ein kleines Python-Skript geschrieben habe, das eine Tag-Datei erstellt. Das Skript sucht nach CSS-Klassen und druckt für jede Klasse eine Tag-Zeile.
Im Moment führe ich das Skript von Hand mit aus
Dadurch werden die Dateien zur Tags-Datei hinzugefügt. Dies funktioniert, da die Tag-Vervollständigung nicht durch die
iskeyword
Einstellung eingeschränkt ist.Hier ist der Inhalt des Skripts, das auch auf GitHub verfügbar ist .
quelle