EDITOR 环境变量最初设置在哪里?

EDITOR 环境变量最初设置在哪里?

EDITOR环境变量在哪里初始化的?到目前为止,我已经检查了以下文件,但找不到它在哪里:

  • ~/.bashrc
  • 〜/ .bash_profile
  • 〜/.profile
  • /etc/配置文件
  • /etc/bashrc
  • /etc/环境

答案1

无处。你从错误的角度思考这个问题。

每个应用程序都有自己的首选编辑器(或寻呼机,或它需要的其他任何东西)。那是内置进入应用程序。在编译时定义并且永远不会改变。

如果应用程序的创建者想要允许用户稍后更改它 - 然后应用程序可以查看环境变量 EDITOR、PAGER 等并使用用户在那里定义的任何内容。

一些能够切换到用户首选编辑器的应用程序不会查看环境变量 EDITOR,而是查看其自己的配置文件。或两者(git例如)。

答案2

我猜测 $EDITOR 是在您当前的 shell 中设置的,但您不确定它是如何设置的以及在哪里设置的?如果是这种情况,并且您所在的系统strace安装了 Linux 等,您可能想尝试查看 BASH 打开的所有文件。我稍微修改了这个问题的答案找出登录时 bash 正在运行哪些脚本

echo exit | strace -e open bash -li

来自 BASH 手册页:

      -i        If the -i option is present, the shell is interactive.
       -l        Make bash act as if it had been invoked as a login shell (see INVOCATION below).

另一种方法是,在该答案的另一条评论中,使用-x启用回显所执行的每个命令的标志来调用 bash:

/bin/bash -x -l -i -c 'exit' 2>&1 | less

我首先会这样做,以确保 $EDITOR 在启动时以某种方式设置,并且不会被您在 shell 初始化后运行的其他脚本或程序导出。

相关内容