5 Stimmen

Vim In-File-Befehle

Ich suche nach einem Mittel, mit dem ich zusätzliche Befehle zu einer Textdatei über vim hinzufügen kann. Zum Beispiel, so wie man etwas wie dies tun kann:

# vim:syntax=foo

Ich würde gerne etwas tun wie:

# vim:option call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')

Irgendwelche Ideen? Ich weiß, dass ich eine Syntaxdatei schreiben kann, aber das ist nicht das, wonach ich im Moment suche.

5voto

ib. Punkte 26240

Vim Modeline-Syntax (siehe :help modeline ) ist nicht zur Angabe von Befehlen gedacht die beim Öffnen der Datei ausgeführt werden sollen. Genau dafür sind autocommands gedacht (siehe :help autocommand ). Was Sie zu tun versuchen, sollte ein Autokommando sein ähnlich dem folgenden sein.

autocmd FileType foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')

o

autocmd BufReadPost *.foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')

(Hier anstelle von *.foo Sie können ein beliebiges Muster verwenden, das mit dem Pfad oder dem Dateinamen übereinstimmt (oder beides) der Zieldatei entspricht).

Wenn sich die Konfiguration, die Sie einrichten, auf einige Dateien oder ein Projekt bezieht, und Sie wollen nicht Ihre .vimrc mit denen autocmd s, verwenden localvimrc Plugin. Es erlaubt Ihnen, eine "lokale" .vimrc neben der Datei Ihrer Zieldatei oder Ihrem Projektordner. Das in dieser Datei gespeicherte Skript .lvimrc ist ausgeführt, wenn Sie Dateien in demselben Verzeichnis öffnen, in dem die "lokale" .vimrc ist, oder in seinen Unterverzeichnissen. Die oben gezeigten Autokommandos (oder alle anderen Konfigurationen) können in einem .lvimrc Datei das lokale Projekt. Für Einzelheiten über localvimrc Konfiguration siehe die Homepage des Plugins.

1voto

mike3996 Punkte 16260

Dies ist keine Antwort auf Ihre Frage, aber ich habe auch nach der Wahrheit gesucht, und diese Frage hier kommt ihr am nächsten:

Vim: Wie man ausgewählten Text als Vim-Befehle ausführt

Es ist nicht automatisch, aber möglicherweise ist es nur einen Tastendruck entfernt und damit nahe genug :)

0voto

Ingo Karkat Punkte 159961

Meine ModelineCommands-Plugin erweitert die eingebauten Modelines von Vim, um beliebige Ex-Befehle auszuführen, wenn eine Datei geöffnet wird. Ein Satz konfigurierbarer Prüfer untersucht die Befehle und kann die Korrektheit eines optionalen Befehls-Digest überprüfen, um die Ausführung von potentiell bösartigen Befehlen aus unbekannten Quellen zu verhindern. (Das ist der Hauptgrund, warum Vim diese Funktion nicht anbietet!) Auf diese Weise könnten Sie die Befehle auf nur einfache :let oder lassen Sie sich vom Plugin abfragen, um die Ausführung von Dingen zu bestätigen, die nicht mit Ihrem eigenen geheimen Schlüssel signiert sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X