这是场景。
我在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 中做一些事情,但我不知道如何做。谷歌搜索,但没有发现任何有价值的东西。
一个可能的解决方案是在 netrw 中按
c
更改当前工作目录,并通过发出 :shell
从您所在的文件夹中生成一个新的 shell
所以它看起来像:
vim .
Navigate to the desired folder...
c
:shell
您就位于 netrw 中当前文件夹的 shell 中。
当您退出该 shell 时,您将返回到 netrw 中的位置并可以继续使用资源管理器。
要添加到 Wadih 的答案,您可以将其放入您的
.vimrc
文件中:
let g:netrw_keepdir=0
这意味着工作目录将自动更新,您无需每次都按
c
。:sh
这将在当前文件夹中打开终端。
来自 netrw 帮助文件:
默认情况下,g:netrw_keepdir 为 1。该设置表示当前 目录不会跟踪浏览目录。 (向后完成 与 v6 的文件浏览器兼容)。
将 g:netrw_keepdir 设置为 0 告诉 netrw 创建 vim 的当前目录 跟踪 netrw 的浏览目录。
您可以使用以下方法复制当前的 Netrw 路径:
:norm 3G5|"+y$
然后退出[
SHIFT
+Z
+Q
],换成cd
[CTRL
+V
][ENTER
]。
为此,您还需要设置 (n)vim 离开后不清除剪贴板。
附注我在这里亲身实践了解了什么是 XY 问题。