bash 中的“editor”命令是什么?

Dan*_*oss 9 bash editors environment-variables xubuntu

我正在寻找有希望打开当前用户最喜欢的文本编辑器的命令,因为我正在博客中用命令写出一些说明。我期待像这样的命令edit,我发现editor. 对我来说,是在终端启动vim,接近我想要的;我使用 vim-gtk。我开始寻找一种让编辑器使用 vim-gtk 的方法,发现这个问题解释了一个$EDITOR环境变量,但我不确定这是否与editor命令有关。我试过了man editor,但那只是打开了 vim 联机帮助页。

如何editor使用我选择的文本编辑器,或者我应该使用不同的命令?

slm*_*slm 7

这是 Debian 主义(因此出现在 Ubuntu、Mint 等中)。他们设置了一个名为editor. 您可以按如下方式追溯:

$ which editor
/usr/bin/editor

$ ls -l /usr/bin/editor 
lrwxrwxrwx 1 root root 24 Nov 24 19:10 /usr/bin/editor -> /etc/alternatives/editor

$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Nov 24 19:46 /etc/alternatives/editor -> /usr/bin/vim.gnome

$ ls -l /usr/bin/vim.gnome
-rwxr-xr-x 1 root root 2403392 Oct 26  2012 /usr/bin/vim.gnome
Run Code Online (Sandbox Code Playgroud)

所以你可以看到这editor只是一个指向可执行文件的 Unix 链接vim.gnome

使用editor?

我不认为我会朝着editor对用户有意义的方式进行设置的方向前进,因为这不是我认为的标准。

此外,您可以设定$EDITOR环境变量指向你想要的任何东西,vimgeditemacs,等,但这个变量只保证通过其他工具,如使用sudogit以及subversion专门设计被扎成使用变量$EDITOR

实施思路

我只会设置您自己选择的别名,并通过他们的$HOME/.bashrc文件作为别名 X指示用户可以使用它,或者将其设置为文件中的系统配置/etc/profile.d/our_aliases.sh,作为别名 X。

或者,您可以告诉用户系统提供geditgvimvimemacs等,并切开糖衣,立即教他们这些东西。

或者您可以提供一个文本文件/etc/help.txt,它们可以通过shell 中的命令help( alias help="less /etc/help.txt")运行,该文件将提供基本命令以及如何执行各种任务。这种方法允许您随着时间的推移使用新功能或提示自定义帮助,它不仅为他们提供了editor方便的命令。

  • `s/Ubuntu/Debian/g` (4认同)

J. *_*bal 7

某些程序在您告诉它们编辑文件时调用的编辑器程序。您必须自己设置环境变量。

如果您使用 csh 或 tcsh,在 shell 提示下:

setenv EDITOR vim
Run Code Online (Sandbox Code Playgroud)

如果您使用 bash 或 ksh,则输入:

EDITOR=vim; export EDITOR
Run Code Online (Sandbox Code Playgroud)

(将“vim”替换为您要使用的编辑器。)

EDITOR默认情况下,该变量是某些应用程序调用编辑器所需的变量。还有另一个称为VISUAL用于指定面向屏幕的编辑器的变量。通常,您希望将其设置为与EDITOR变量相同的值。最初EDITOR会被设置为 ed(基于行的编辑器)并且VISUAL会被设置为 vi(基于屏幕的编辑器)。

VISUAL="vim"; export VISUAL
VISUAL="$EDITOR"; export VISUAL  #even better
Run Code Online (Sandbox Code Playgroud)

完成此操作后,大多数使用文本编辑器的 Unix 程序将使用您设置的编辑器。通过执行上述命令,您将仅为当前计算会话设置默认编辑器。要使这些更改永久化,您需要将上述适当的命令放置在您的.login.cshrc文件(对于 csh 或 tcsh 用户)或您的.profile文件(如果您使用 bash 或 ksh)中。

如果您假装使用 Emacs,还有另一个环境变量。它是ALTERNATE_EDITOR, 并且具有相同的效果,但是在使用--alternate-editor选项调用 Emacs 时使用它。

来自GNU Emacs 手册

该选项在脚本中--alternate-editor=command运行时很有用 emacsclient。它指定在emacsclient 无法联系 Emacs 时运行的命令。例如,EDITOR环境变量的以下设置 将始终提供一个编辑器,即使 Emacs 未运行:

EDITOR="emacsclient --alternate-editor vi +%d %s"
Run Code Online (Sandbox Code Playgroud)

  • 说`sh`没有意义。`sh` 通常是系统的外壳。它曾经是 Thomson shell,然后是 Bourne shell,然后是现在在大多数系统上,一个或另一个实现 POSIX `sh` 规范的 shell。`export EDITOR=vim` 语法是 POSIX,但不是 Bourne 和 Thomson。`export VISUAL=$EDITOR` 适用于 `bash` 和一些 `ksh` 的实现。在大多数其他 shell 中,您需要 `export VISUAL="$EDITOR"`。`VISUAL=$EDITOR export VISUAL` 将适用于所有 Bourne-like shell,包括 Bourne shell。 (3认同)