Это всего лишь забавная заметка о bash
и readline
, но если вы установите EDITOR
переменную окружения на vim
, нажатие Ctrl+ x+ eоткроет текущую строку в vim
. Кроме того, если вы введете Meta(Alt/Opt/Esc)+ Ctrl+ e, bash выполнит расширение на месте в текущей командной строке, то есть:
$ echo $EDITOR # Assuming EDITOR was set
с Meta(Alt/Opt/Esc)+ Ctrl+ eстанет
$ echo vim # Assuming EDITOR was set
с Ctrl+ x+ eстанет
1 echo vim # Assuming EDITOR was set
~
~
/tmp/sometmpbufferfile
Обратите внимание, что после выхода из vim содержимое буфера vim выполняется в командной строке.
Эти функции становятся очень полезными для меня, когда я хочу выполнять многострочные команды в bash, например, для циклов или программ, требующих операторов здесь, и предоставляет интересный способ сохранить немного истории командной строки в файл для дальнейшего использования.
Чтобы ответить на исходный вопрос, вы также можете написать:
$ This is an example
а затем нажмите Ctrl+ x+ , eчтобы загрузить его в vim
. Также вы могли бы иметь,
$ $(cat /etc/hosts)
и выполните Meta(Alt/Opt/Esc)+ Ctrl+, eзатем Ctrl+ x+ e, что поместит все файлы хостов в одну строку и загрузит их vim
(вероятно, это не лучшее использование этих функций - однако полезность этих методов может быть экстраполирована из нескольких рассмотренных примеров). Вот).
Обратите внимание, что я предполагаю, что у вас readline
установлен emacs
режим. Если у вас readline
установлен vim
режим, вы можете легко обнаружить соответствующие привязки с помощью команды:
bind -p
и поиск edit-and-execute-command
или shell-expand-line
, которые были соответственно связаны с привязками Ctrl+ x+ eи Meta(Alt/Opt/Esc)+ Ctrl+ e.
:help stdin
... Удивительно, как быстро можно найти ответы, задавая вопрос о встроенной документации.