在vim netrw退出后更新当前工作目录

时间:2013-03-18 02:58:39

标签: unix vim

这是场景。
我在unix命令行(在主目录中)。我想通过

浏览目录
$ vim . 
从而打开了vim netrw 现在我正在使用netrw浏览目录 我想要的是当我退出vim netwr时,我希望我之前的当前工作目录(在本例中为主目录)现在成为我以前在vim netrw中的目录。
例如:
步骤1.现在在主目录中 第2步.vim。 (因此打开了vim netrw)
第3步。转到任何目录(〜/ my / other / folders)
第4步:q(退出vim)
第5步。(这里,我希望我以前的目录现在成为〜/ my / other / folders

关于如何做的任何想法?我想在.vimrc做一些事情,但我不知道怎么做。进入谷歌搜索,但没有发现任何有价值的东西。

3 个答案:

答案 0 :(得分:2)

我认为这根本不可能。通过system('command'):!command执行的每个命令都是通过子shell执行的,而不是通过启动Vim的shell执行的,因此我不知道如何以任何方式更改主机shell。

但我在这里闻到一个XY问题。你的目标是什么?

您是否希望能够对刚刚编辑过的文件执行某些命令并希望进入其目录?如果是这样,你知道:sh吗? :!command

您想为shell设置“图形”文件资源管理器吗?如果是这样,你知道vifm吗? RangerMidnight Commander

答案 1 :(得分:1)

一种可能的解决方案是在netrw中按c更改当前工作目录,并通过发出:shell

从您所在的文件夹中生成一个新shell

所以它看起来像:

vim .
Navigate to the desired folder...
c
:shell

你在netrw当前文件夹中的shell中。

当你退出那个shell时,你会回到你在netrw所在的地方并继续使用它。

答案 2 :(得分:0)

要添加到Wadih的答案中,您可以将其放在context.store文件中:

.vimrc

这意味着工作目录将自动更新,您无需每次都按let g:netrw_keepdir=0
因此,导航到netrw中的文件夹后,您所需要做的就是:

c

这将打开当前文件夹中的终端。

从netrw帮助文件:

  

默认情况下,g:netrw_keepdir为1。此设置表示当前   目录将不会跟踪浏览目录。 (做后退   与v6的文件浏览器兼容)。

     

将g:netrw_keepdir设置为0告诉netrw创建vim的当前目录   跟踪netrw的浏览目录。