Открытие текстового редактора по умолчанию в bash?

18

Я писал сценарий оболочки и столкнулся с проблемой. Есть ли способ открыть файл, используя указанный текстовый редактор пользователя?

    
задан Stoof 23.05.2012 в 19:49
источник
  • Будьте осторожны: некоторые пользователи установят EDITOR в программу, которая демонизирует себя, и ваш сценарий не сможет легко дождаться их завершения. –  William Pursell 23.05.2012 в 20:29
  • @WilliamPursell. Зачем кому-то это делать? Не могли бы вы дать мне сценарий, где это уместно? –  kraxor 22.10.2014 в 14:41
  • @kraxor, я бы сказал, что это никогда не подходит, но некоторые люди делают сумасшедшие вещи. Для кого-то не редкость, чтобы редактор GUI создавал новое окно. –  William Pursell 22.10.2014 в 19:06

3 ответа

22

Выбранный пользователем редактор должен быть в $EDITOR , но вы все равно должны выбрать нормальный по умолчанию.

"${EDITOR:-vi}" file.txt
    
ответ дан Ignacio Vazquez-Abrams 23.05.2012 в 19:51
  • Возможно, вы захотите сделать больше резервных копий, например: $ {EDITOR: - $ {VISUAL: -vi}} –  William Pursell 23.05.2012 в 20:26
  • Как насчет $ {FCEDIT: - $ {VISUAL: - $ {EDITOR: -vi}}}? Предоставление предпочтений VISUAL над $ EDITOR, содержащим ed, кажется хорошей идеей. $ FCEDIT был env var для ksh (вероятно, все еще есть), где команда fc используется для доступа к истории; это также признано bash. –  Jonathan Leffler 23.05.2012 в 21:42
5

Право Игнасио (хотя, возможно, резерв должен быть ed , который POSIX требует присутствия, хотя он по существу полезен только для старожилов).

Если вы думаете о графических редакторах, xdg-open file.txt - это то, что вам нужно.

    
ответ дан Nicholas Wilson 23.05.2012 в 20:10
  • POSIX требует также vi, не так ли? Или это только опция «Утилиты пользовательской переносимости» для POSIX, где ed не является. Но +1 для упоминания ed. –  Jonathan Leffler 23.05.2012 в 21:45
  • При обсуждении переменной среды POSIX2_UPE (старое имя для функции было расширение пользовательской переносимости, UPE) в POSIX 2008, есть список функций, которые находятся в ВПС: «Список утилит в служебных программах пользовательской переносимости вариант выглядит следующим образом: bg, ex, fc, fg, jobs, more, talk, vi. Итак, теоретически, если у вас есть команда fc, вы также должны иметь доступ к vi. –  Jonathan Leffler 23.05.2012 в 22:21
0

note: xdg-open file.xml будет открываться в веб-браузере, скорее всего. Итак, попробуйте

    # select your default sensible-editor from all installed editors, or not.
    select-editor
    # Open Default Text Editor
    sensible-editor file.xml
    
ответ дан JimmyLandStudios.com 23.12.2015 в 23:05