Что такое команда `editor` в bash?

Я искал команду, которая, надеюсь, откроет любимый текстовый редактор текущего пользователя, потому что я пишу некоторые инструкции с командами в блоге. Я ожидал команду типа edit и обнаружил editor. Для меня это начало vim в терминале, который близок к тому, что я хотел; Я использую vim-gtk. Я начал искать способ заставить редактор использовать vim-gtk и нашел этот вопрос, который объясняет переменную окружения $EDITOR, но я не уверен, связано ли это даже с editor. Я попытался man editor, но это только что открыло страницу управления vim.

Как я могу заставить editor использовать текстовый редактор по своему выбору или использовать другую команду?

6 голосов | спросил Dan Ross 26 Mayam13 2013, 00:20:12

5 ответов


0

Это Debian-ism (и поэтому появляется в 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

Итак, вы можете видеть, что 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, который они могут запустить с помощью команды help (alias help="less /etc/help.txt") в оболочке, которая предоставляет основные команды и способы выполнения различных задач. , Этот подход позволяет настраивать справку с течением времени с помощью новых функций или советов и дает им больше, чем просто удобную команду editor.

ответил slm 26 Mayam13 2013, 00:26:53
0

Программа-редактор, вызываемая некоторыми программами, когда вы говорите им редактировать файл. Вы должны установить переменную среды самостоятельно.

Если вы используете csh или tcsh, в командной строке:

setenv EDITOR vim

Если вы используете bash или ksh, введите:

EDITOR=vim; export EDITOR

(Замените "vim" на редактор, который вы хотите использовать.)

Переменная EDITOR - это та переменная, которая необходима по умолчанию для некоторых приложений для вызова редактора. Существует еще одна переменная с именем VISUAL, используемая для указания редактора, ориентированного на экран. Как правило, вы хотите установить для него то же значение, что и для переменной EDITOR. Первоначально для EDITOR было бы задано значение ed (редактор строк) и VISUAL был бы установлен в vi (экранный редактор).

VISUAL="vim"; export VISUAL
VISUAL="$EDITOR"; export VISUAL  #even better

Когда вы это сделаете, большинство программ Unix, использующих текстовые редакторы, будут использовать установленный вами редактор. Следуя приведенным выше командам, вы установите редактор по умолчанию только для текущего компьютерного сеанса. Чтобы сделать эти изменения постоянными, вам нужно поместить соответствующие команды, описанные выше, в свои .login или .cshrc файлы (для пользователей csh или tcsh) или ваш файл .profile (если вы используете Баш или кш).

Существует также другая переменная окружения, если вы притворяетесь, что используете Emacs. Он ALTERNATE_EDITOR и имеет тот же эффект, но он используется, когда Emacs вызывается с помощью --alternate-editor опция.

Из Руководства по GNU Emacs :

  

Опция --alternate-editor=command полезна при запуске   emacsclient в скрипте. Указывает команду для запуска, если emacsclient   не может связаться с Emacs. Например, следующий параметр для   Переменная окружения EDITOR всегда будет редактором, даже если Emacs   не работает:

EDITOR="emacsclient --alternate-editor vi +%d %s"
ответил J. A. Corbal 26 Mayam13 2013, 00:42:21
0

Вам нужно будет указать editor в переменной среды EDITOR. Добавьте следующую команду в свой .profile:

export EDITOR=editor

Если вы хотите vim в качестве редактора по умолчанию, вы добавите вместо него

export EDITOR=vim

Личные предпочтения: я использую абсолютный путь к редактору в переменной среды. Например,

export EDITOR=/usr/bin/vim

ответил unxnut 26 Mayam13 2013, 00:24:29
0

Команда editor зависит от Ubuntu. Он не переносим и даже не распространен (за пределами Ubuntu). Команда также устанавливается для всей системы, а не для пользователя. Это работает так, что /usr/bin/editor - это просто символическая ссылка на редактор в системе. Как таковая, она одинакова для всех пользователей.

Переменная среды $EDITOR является достаточно стандартной. Он используется многими программами, которые нуждаются в редактировании пользователем. Таким образом, именно эту переменную вы должны использовать, когда хотите вызвать редактор пользователя.

ответил Patrick 26 Mayam13 2013, 00:28:49
0

Это то, что я использую в своем сценарии:

# Find a suitable text editor
editor="$VISUAL"
[ -z "$editor" ] && editor="$EDITOR"
[ -z "$editor" ] && which editor >/dev/null && editor=editor
[ -z "$editor" ] && which nano   >/dev/null && editor=nano
[ -z "$editor" ] && which vi     >/dev/null && editor=vi
[ -z "$editor" ] && editor=no_editor_found

# Use the editor we found
$editor "$filename"

Я не заключил в кавычки заключительный вызов $editor, чтобы обеспечить работоспособность приведенного выше примера emacsclient.

Поэтому я думаю, что важно всегда устанавливать какое-то значение для editor, иначе последняя строка может непреднамеренно выполнить $ filename . В моем случае я выбрал no_editor_found, но вы также можете использовать pico или ed там.

ответил joeytwiddle 25 FebruaryEurope/MoscowbThu, 25 Feb 2016 11:01:07 +0300000000amThu, 25 Feb 2016 11:01:07 +030016 2016, 11:01:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132