用DIRSTACK更改vim的工作目录

时间:2018-12-13 17:52:19

标签: bash vim

我在bash中大量使用DIRSTACK环境数组,并经常使用cd ~2cd ~4之类的内置文件来更改目录

如何配置vim以利用此功能?我希望能够像在bash中一样更改vim的工作目录。我看到命令在子shell中运行,因此仅使用!cd不起作用。

1 个答案:

答案 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会给您一条错误消息,但是还不错,因为它只是停留在原来的目录中。