如何查找和设置 $EDITOR 环境变量?

Wil*_*czy 34 command-line ipython

当我使用 ipython 或 ipython3 时,我可以使用 %edit 命令打开一个编辑器来编写我的 python 脚本。我的问题是默认编辑器是 vim,我真的不知道如何使用该编辑器。我想做的是将编辑器更改为 nano 或 gedit。我想继续使用终端,我更愿意将其更改为 nano 编辑器。

当我输入“编辑?” 命令进入 ipython 终端,它说:

%edit 运行 IPython 的编辑器钩子。此钩子的默认版本设置为调用 $EDITOR 环境变量指定的编辑器。如果没有找到,它会在 Linux/Unix 下默认为 vi,在 Windows 下默认为记事本。有关如何更改编辑器挂钩的信息,请参阅此文档字符串的末尾。

然后当我看到该文档字符串的结尾时,我看到了:

更改默认编辑器挂钩:

如果你想编写自己的编辑器钩子,你可以把它放在一个你在启动时加载的配置文件中。默认挂钩在 IPython.core.hooks 模块中定义,您可以将其用作进一步修改的起始示例。该文件还包含有关如何在定义后设置新挂钩以供使用的一般说明。

很抱歉成为这样的新手,但我在这里迷路了。我不确定如何访问 IPython.core.hooks 模块,或者只是将环境变量 $EDITOR 设置为 nano。

有什么建议?

Dan*_*ela 52

您可以$EDITOR使用以下命令设置变量:

export EDITOR="/usr/bin/nano"
Run Code Online (Sandbox Code Playgroud)

这将为EDITOR当前会话定义变量并将其传递到其所有子进程的环境中。要永久设置它,您必须在系统配置文件之一中定义它。您可以执行此操作的最高级别是将其设置在/etc/environment. 这在全局定义了它:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
EDITOR="/usr/bin/nano"
Run Code Online (Sandbox Code Playgroud)

检查变量是否已定义:

$ echo $EDITOR
/usr/bin/nano
Run Code Online (Sandbox Code Playgroud)

编者注:通常最好将环境变量放在您自己的 中~/.profile,如果出现问题,这更容易修复。

  • 您不需要重新启动以使更改生效,只需在编辑文件后运行 `source /etc/environment`。 (4认同)

Sto*_*rux 20

添加行

export EDITOR=nano
Run Code Online (Sandbox Code Playgroud)

~/.profile~/.bashrc在下面的图片。千万不能把引号nano

在此处输入图片说明

然后运行

source ~/.profile 
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

在提示之后修改.profile.bashrc对修改生效。

在此处输入图片说明

现在%editinipython将打开nano

~/.bashrc 将被要求 interactive + non-loginshell

~/.profile将被要求interactive + login shell

在您的情况下,只需将其添加到~/.bashrc而不是~/.profile.

  • `.bashrc` 应该只用于 Bash 特定的设置(例如,shell 选项、别名等),而 `.profile` 应该用于设置环境变量,比如 `EDITOR`(它被诸如`sudoedit 这样的程序使用) `、`git` 等)。见 https://unix.stackexchange.com/a/3085/22812 和 https://unix.stackexchange.com/a/42765/22812 (4认同)