когда я набираю команды на терминале, я обычно пытаюсь использовать его как текстовый редактор, я знаю, что это не то, как его следует использовать, но недавно я смотрел разговор на YouTube, и докладчик сделал что-то интересное в 17:25 https://youtu.be/f5phsX4VUOU?t=17m25s. Похоже, выскочил мини-текстовый редактор -> он отредактировал текст -> закрыл его, и изменения отразились на терминале. Как я могу это сделать? это какой-то плагин или ярлык?

1 ответ1

3

Если вы хотите отредактировать команду из своей истории, команда fc может помочь.

Сначала установите редактор на ваш выбор через переменную FCEDIT . Чтобы использовать TextEdit.app, сделайте это:

$ FCEDIT='open -nW'

Затем выполните несколько команд:

$ echo "this command neets editing"

Позже запустите fc:

$ fc

TextEdit должен открыться, с echo "this command neets editing" в новом окне. Измените "neets" на "needs", затем сохраните файл и выйдите из редактора. Как только редактор выйдет, будет выполнена измененная команда, отображающая исправленный текст.

Если вы хотите редактировать активную команду, вызовите команду edit-and-execute-command . В моей оболочке это связано с Ctrl-x Ctrl-e . Это зависит от значения переменной среды EDITOR .

Найдите привязку ключа в вашей оболочке:

$ bind -q edit-and-execute-command
edit-and-execute-command can be invoked via "\C-x\C-e".

Это Ctrl-x Ctrl-e . Установите РЕДАКТОР на то, что вам нравится. Я использую emacs , но давайте снова использовать TextEdit, так как это OS X.

$ EDITOR='open -nW'
$ echo "this command neets editing"  #now type ctrl-x then ctrl-e

Ваш редактор откроется. Отредактируйте команду и сохраните файл. Когда вы закроете свой редактор, новая команда будет запущена.


Для получения дополнительной информации о fc , запустите help fc . Для получения дополнительной информации о edit-and-execute-command запустите man readline . Для получения дополнительной информации о bind , запустите help bind .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .