vi: ${PWD} 从 Caja 打开与从终端打开时的行为

vi: ${PWD} 从 Caja 打开与从终端打开时的行为
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

不确定为什么行为上会有差异。

开始文件夹的视图:

在 Caja 中启动文件夹

序列预期的结果:

- open a terminal from Caja (Ubuntu MATE 20.04), 
- open file with vim junk18.sh
- type :r junk16.sh

Vim 导入位于 vim 启动目录中的 junk16.sh。

成功导入 junk16.sh

序列意外结果:

- 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 键之前,屏幕显示如下:

在按下 Enter 键之前

结果如下:

报告导入失败

那么...为什么 gvim 的工作目录或起始目录不是Caja 中选择的文件的位置???

如果我输入:!sh 然后 密码,它报告了${主页}我的非 root 用户 ID,而不是当前目录文件夹正在被观看!!!

答案1

总体而言,您是图形桌面中“当前工作目录”概念处理方式不佳的受害者。

  • 您导航到文件所在的目录
  • 您启动一个应用程序
  • 应用程序默认在另一个目录中查找;您需要导航再次到你的文件所在的位置。
  • 第三个应用程序也同样如此。

这就像在家里做一项工作,每次都必须再次走到车库外面去挑选一件新的工具来工作。

回答你的问题

在第一种情况下,你在 Caja 中打开一个终端。终端的工作目录在 Caja 中选择的目录。从终端启动的程序也将默认查找此工作目录。

在第二种情况下,您使用右键菜单打开文件。这会导致 gvim 根据.desktop启动器中提供的信息打开。没有机制将文件管理器的当前目录传递给启动的进程。默认情况下,该文件管理器在您的主目录中启动(如您亲眼所见),除非被Path=启动器中的指令覆盖。

这是目前的实施方式,因此需要对当前系统的工作方式进行调整。

相关内容