如何找出我的默认终端文本编辑器是什么?

在阅读git介绍材料时,我读了一篇提到这个问题的文章。

如何使用终端找出我的默认文本编辑器是什么?

是否有一个通用命令可以用来查找它?

默认编辑器由EDITORVISUAL环境变量定义。

如果两者都没有定义,则默认编辑器为vi 。 加

 export EDITOR="/bin/nano" 

到你的~/.bashrc文件来设置,例如, nano作为你的默认编辑器。

要查看是否已设置环境变量,您可以使用

 printenv | grep EDITOR 

要么

 set | grep EDITOR 

可以通过在前面添加“$”来取消引用指定环境变量的值

 $ echo $EDITOR 

要么

 $ echo $VISUAL 

在Ubuntu中,有一个通用editor命令,由Debian替代系统设置。

如果你这样做:

 editor foobar.txt 

该文件将使用原始编辑器打开,例如vimnano ,目前优先editoreditor

您可以查看详细信息:

 update-alternatives --display editor 

要将新编辑editor设置为editor

 sudo update-alternatives --config editor 

另请注意, bash检查一些环境变量以查找与之相关的任务,确切的是bash检查VISUALEDITOR一个接一个。 如果未设置, bash默认为emacs

bash产生的一些进程也检查这些环境变量。

实际上有git var -l允许你列出变量,包括GIT_EDITOR变量。 这是我的(私人信息当然没有设置):

 $ git var -l user.name=***** user.email=**** GIT_COMMITTER_IDENT=**** GIT_AUTHOR_IDENT=**** GIT_EDITOR=editor GIT_PAGER=pager 

正如heemayl已经指出的那样, editor命令是由/etc/alternatives/editor设置的命令。 在我的情况下,那是nano (我假设它是Ubuntu的默认值,因为我不记得有意识地努力改变我的默认编辑器)。

但是在Ubuntu以外的其他系统上(或者我应该说没有Debian的替代系统),没有editor 。 但是,让我们读一下man git

GIT_EDITOR

此环境变量会覆盖$ EDITOR和$ VISUAL。 当在交互模式下启动编辑器时,它由几个Git命令使用。 另请参阅git-var(1)和git-config(1)中的core.editor选项。

如果我们通过git-var查看它告诉我们

首选顺序是$ GIT_EDITOR环境变量,然后是core.editor配置,然后是$ VISUAL,然后是$ EDITOR,然后在编译时选择默认值,通常是vi。

因此,它拥有Debian的替代系统仅仅是Ubuntu的一个特点。 在没有Debian替代系统的其他系统上,它将默认为vi