问题
我正在尝试获取edit-in-kitty
命令在我的本地工作站上工作(还没有通过 SSH),但环境变量(通常在获取 shell 的 rc 文件时导出)似乎在执行此命令时不会传递到子进程。这会在启动编辑器时导致许多错误。
更具体地说,编辑器是 Vim,我面临的问题示例包括:
- 全局变量
g:colors_name
是根据环境变量的值设置的BASE16_THEME
(在我的 shell 的 rc 文件中设置),如果没有它,某些插件的主题就无法应用。 - 某些插件正在 my 中寻找可执行文件
PATH
,但失败了,因为PATH
Vim 可见的只是系统范围PATH
(/usr/bin:/bin:/usr/sbin:/sbin
)。
我非常确定它edit-in-kitty
确实收到了完全填充的环境执行期间,因为它运行我的手动安装Vim 版本而不是操作系统附带的版本,这正是我所期望的。对我来说,环境似乎变得干净了在启动编辑器之前。
成分:
- 小猫0.25.2
- zsh 5.8.1
- Vim 9.0(macOS 版本,MacVim 的一部分)
我尝试过的
我设置了env
选项在我的 kitty 配置中明确显示env BASE16_THEME=default-dark
,并且可以确认当我运行时它会转移到 Vim 中edit-in-kitty
。
PATH
以同样的方式设置,例如 via env PATH=/custom/bin:${PATH}
,肯定也会起作用。
问题
上面的方法对我来说不太方便,因为环境在很大程度上取决于我的 shell 的配置,而该配置因系统而异。自从小猫运行 shell 来评估其环境,有没有办法指示它在启动文本编辑器时保留此环境?
答案1
这关于 edit-with-kitty 的 kitty 页面问题中链接到的内容提到它接受与启动命令相同的参数,记录在案这里。
它有一个--copy-env
选项可以保留启动它的 shell 的环境变量。