这是场景。
我在unix命令行(在主目录中)。我想通过
$ vim .
从而打开了vim netrw
现在我正在使用netrw浏览目录
我想要的是当我退出vim netwr时,我希望我之前的当前工作目录(在本例中为主目录)现在成为我以前在vim netrw中的目录。关于如何做的任何想法?我想在.vimrc做一些事情,但我不知道怎么做。进入谷歌搜索,但没有发现任何有价值的东西。
答案 0 :(得分:2)
我认为这根本不可能。通过system('command')
或:!command
执行的每个命令都是通过子shell执行的,而不是通过启动Vim的shell执行的,因此我不知道如何以任何方式更改主机shell。
但我在这里闻到一个XY问题。你的目标是什么?
您是否希望能够对刚刚编辑过的文件执行某些命令并希望进入其目录?如果是这样,你知道:sh
吗? :!command
?
您想为shell设置“图形”文件资源管理器吗?如果是这样,你知道vifm吗? Ranger? Midnight Commander?
答案 1 :(得分:1)
一种可能的解决方案是在netrw中按c
更改当前工作目录,并通过发出: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的浏览目录。