VIM - Vi IMproved 8.1 (2018 May 18, compiled Feb 01 2022 09:16:32)
Included patches: 1-2269, 3612, 3625, 3669, 3741
Ubuntu MATE 20.04.5 LTS
Caja 1.24.0
不知道为什么会有行为上的差异。
起始文件夹视图:
具有预期结果的序列:
- open a terminal from Caja (Ubuntu MATE 20.04),
- open file with vim junk18.sh
- type :r junk16.sh
Vim 导入 junk16.sh 位于 vim 的启动目录中。
具有意外结果的序列:
- Default action for *.sh files is to open using gvim
- cursor right-click on junk18.sh
- select open
- from within gvim, type :r junk16.sh
在按下 Enter 键之前,屏幕如下所示:
结果如下:
那么...为什么 gvim 的工作目录或启动目录不是Caja 中选择的文件的位置???
如果我输入:!sh 然后 pwd,它会报告我的非 root 用户 ID的${HOME} ,而不是正在查看的Caja 文件夹的当前目录!!!
您是一般图形桌面中处理“当前工作目录”概念的糟糕方式的受害者。
这就像在房子里做一份工作,每次都不得不到外面的车库去挑选一个新的工具来完成这项工作。
回答你的问题
在第一种情况下,您在 Caja 中打开一个终端。终端的工作目录是在 Caja 中选择的目录。默认情况下,从终端启动的程序也会在此工作目录中查找。
在第二种情况下,您使用右键菜单打开文件。这会导致 gvim 根据
.desktop
启动器中提供的信息打开。没有适当的机制将文件管理器的当前目录传递给启动的进程。除非被启动器中的Path=
指令覆盖,否则默认情况下会在您的主目录中启动(正如您自己看到的那样)。这是目前的实施方式,因此需要对当前系统的工作方式进行调整。