我如何为特定缓冲区更改当前工作目录,并将其他缓冲区的值更改为先前的值?
更精确地说,我想做的是针对特定文件类型设置自动命令,当包含该文件类型的缓冲区处于活动状态时,更改当前工作目录。并在处理其他缓冲区时将其改回。
我的vimrc文件中有类似以下的设置:
autocmd BufEnter *.py :lcd%:p:h
autocmd BufLeave *.py :lcd-
这里的想法是,我想在处理Python文件时切换到文件所在的目录,在处理其他类型的文件(例如文字、vimL等)时切换回之前的目录。但很明显这没有起作用。我尝试使用
BufWinLeave
,但是没有改变任何东西。你能指出这里有什么问题吗?或者也许有更简单的解决方案?
:lcd
只影响 *.py 文件,那么为什么你还要尝试恢复其他缓冲区的 CWD 呢?如果该缓冲区的 CWD 从未更改,那么你要恢复到什么位置呢? - work.bin:lcd
是窗口本地的,而不是缓冲区本地的。 - romainl:lcd
明确是针对特定选项卡的本地命令。 - work.bin