我在bash中大量使用DIRSTACK环境数组,并经常使用cd ~2
或cd ~4
之类的内置文件来更改目录
如何配置vim以利用此功能?我希望能够像在bash中一样更改vim的工作目录。我看到命令在子shell中运行,因此仅使用!cd
不起作用。
答案 0 :(得分:0)
部分问题是bash实际上不会导出DIRSTACK
。第二个问题是我找不到导出数组外壳变量的任何方法。第三个问题是Vim似乎不知道数组变量的语法。
但是,我只是找到了一种使用Shell别名解决所有问题的方法。这不是一个很好的解决方案,但我对其进行了测试,并将DIRSTACK
成功公开给通过别名调用的Vim实例:
alias dirsvim='env D0=${DIRSTACK[0]} D1=${DIRSTACK[1]} D2=${DIRSTACK[2]} D3=${DIRSTACK[3]} vim'
您可以将此扩展到DIRSTACK要支持的目录数。
然后在Vim中,您可以执行:cd $D1
到cd DIRSTACK
中的第二个目录。
如果DIRSTACK
有两个目录,则$D2
和$D3
是空字符串。这不是超级友好,因为cd $D3
会给您一条错误消息,但是还不错,因为它只是停留在原来的目录中。