Wie kann ich ein aktuelles Arbeitsverzeichnis für einen bestimmten Puffer ändern und für andere Puffer auf einen vorherigen Wert ändern?VIM: Ändern des Arbeitsverzeichnisses nur für den aktuellen Puffer
Genauer gesagt, was ich tun möchte, ist automatische Befehle für bestimmte Dateitypen, die ein aktuelles Arbeitsverzeichnis ändern, wenn ein Puffer mit dem Dateityp aktiv ist. Und ändern Sie es zurück, wenn Sie mit anderen Puffern arbeiten.
hatte ich so etwas in meinem vimrc:
autocmd BufEnter *.py :lcd%:p:h
autocmd BufLeave *.py :lcd-
Die Idee dabei ist, dass ich zu Datei-Verzeichnis wechseln wollte, als auf Python-Dateien arbeiten und zu einem früheren Verzeichnis wechseln, wenn sie auf etwas anderem arbeiten, z.B. Text, vimL usw. Offensichtlich hat es nicht funktioniert. Ich versuche auch mit BufWinLeave
, aber es hat nichts geändert.
Können Sie darauf hinweisen, was hier nicht stimmt? Oder vielleicht gibt es eine einfachere Lösung dafür?
Wenn ': lcd' betrifft nur die * .py Dateien warum dann würden Sie auch versuchen, die CWD für andere Puffer zurückkehren ?! Worauf reagieren Sie, wenn sich der CWD dieses Puffers nie geändert hat? –
Beachten Sie, dass ': lcd' fensterorientiert und nicht bufferlokal ist. – romainl
@ work.bin als romainl erwähnt window-local, nicht buffer- oder file-local. Im selben Fenster kann ich mehrere Puffer verschiedener Dateitypen haben. Und ich möchte, dass cwd für alle Puffer gleich ist, außer für .py-Dateien. Dort möchte ich CWD in das Verzeichnis mit einer .py-Datei ändern. – mfedoten