Ich versuche Vim den Befehl 'CommandTFlush' ausführen, wenn eine neue Datei geschrieben wird. Für Benutzer, die das Command-T-Plugin nicht verwenden, wird der Befehl 'CommandTFlush' verwendet, um einen Index von Dateien im aktuellen Verzeichnis wiederherzustellen.Führen Sie den Befehl CommandTFlush, wenn eine neue Datei geschrieben wird
Ich möchte den Befehl ausführen, nachdem die Datei auf die Festplatte geschrieben wurde, so dass CommandTFlush die Datei finden und sie zu ihrem Index hinzufügen wird.
Ich habe versucht, eine Funktion selbst zu schreiben, aber es entweder nicht ausgelöst oder es löst zu früh (vor der Datei geschrieben wird, und der ganze Punkt ist, um die Datei zu dem Index hinzugefügt werden):
au! BufWritePre * ks| call NewFilesUpdatesCommandT()
function! NewFilesUpdatesCommandT()
let [email protected]%
if !filereadable(filename)
CommandTFlush
endif
endfunction
Ich vermute, es könnte gelöst werden, indem einige Boolean Var (IsTheFileNew) in BufWritePre und dann den Befehl CommandTFlush in BufWritePost ausführen, wenn die Datei erstellt wurde, aber ich kann nicht herausfinden, die Syntax. Eine andere Lösung könnte sein, den BufWritePost Callback innerhalb des BufWritePre Callbacks zu setzen oder zu deaktivieren, wenn das möglich ist ...
Kann mir hier jemand helfen? ;)
Was macht 'ks |' zu Beginn Ihres Autokommandos? Kann es nicht in vim Hilfe finden. – ZyX
Es gefunden. Warum möchten Sie Ihre Position markieren, wenn Ihre Funktion den Cursor nicht bewegt? – ZyX
Keine Ahnung wirklich. Es ist nur ein schlechter Kopier-/Einfüge-Job, basierend auf einigen Zeigern, die ich in #[email protected] bekommen habe. Habe noch nicht ganz herausgefunden, wie man aus den Hilfedateien noch etwas Hilfreiches herausholen kann. Ich bin an meinem dritten Tag mit Vim hier;) – peterfarsinsen