如何更改特定緩衝區的當前工作目錄並將其更改爲其他緩衝區的先前值?VIM:僅更改當前緩衝區的工作目錄
更確切地說,我想要做的是爲特定文件類型提供自動命令,當包含該文件類型的緩衝區處於活動狀態時,它將更改當前工作目錄。在與其他緩衝區一起工作時將其改回。
我有這樣的事情,在我的vimrc:
autocmd BufEnter *.py :lcd%:p:h
autocmd BufLeave *.py :lcd-
這裏的想法是,我想對Python的文件時,切換到文件所在的目錄和別的東西,例如工作時切換到以前的目錄文本,vimL等。顯然,它沒有工作。我也嘗試使用BufWinLeave
,但它沒有改變任何東西。
你能指出這裏有什麼問題嗎?或者也許有一個更簡單的解決方案呢?
如果':lcd'隻影響* .py文件,那麼你爲什麼會甚至嘗試恢復的CWD其他緩衝區?如果該緩衝區的CWD從未改變過,那麼你將恢復到什麼狀態? –
請注意':lcd'是窗口本地的,而不是緩衝區本地的。 – romainl
@ work.bin as romainl said window-local,not buffer- or file-local。在同一個窗口中,我可以有幾個不同文件類型的緩衝區。而且我希望cwd對於所有緩衝區都是相同的,除了.py文件,我想將CWD更改爲包含.py文件的dir。 – mfedoten