Dan*_*oss 9 bash editors environment-variables xubuntu
我正在寻找有希望打开当前用户最喜欢的文本编辑器的命令,因为我正在博客中用命令写出一些说明。我期待像这样的命令edit,我发现editor. 对我来说,是在终端启动vim,接近我想要的;我使用 vim-gtk。我开始寻找一种让编辑器使用 vim-gtk 的方法,发现这个问题解释了一个$EDITOR环境变量,但我不确定这是否与editor命令有关。我试过了man editor,但那只是打开了 vim 联机帮助页。
如何editor使用我选择的文本编辑器,或者我应该使用不同的命令?
这是 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环境变量指向你想要的任何东西,vim,gedit,emacs,等,但这个变量只保证通过其他工具,如使用sudo,git以及subversion专门设计被扎成使用变量$EDITOR。
我只会设置您自己选择的别名,并通过他们的$HOME/.bashrc文件作为别名 X指示用户可以使用它,或者将其设置为文件中的系统配置/etc/profile.d/our_aliases.sh,作为别名 X。
或者,您可以告诉用户系统提供gedit、gvim、vim、emacs等,并切开糖衣,立即教他们这些东西。
或者您可以提供一个文本文件/etc/help.txt,它们可以通过shell 中的命令help( alias help="less /etc/help.txt")运行,该文件将提供基本命令以及如何执行各种任务。这种方法允许您随着时间的推移使用新功能或提示自定义帮助,它不仅为他们提供了editor方便的命令。
某些程序在您告诉它们编辑文件时调用的编辑器程序。您必须自己设置环境变量。
如果您使用 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 未运行:Run Code Online (Sandbox Code Playgroud)EDITOR="emacsclient --alternate-editor vi +%d %s"
| 归档时间: |
|
| 查看次数: |
30649 次 |
| 最近记录: |