Это всего лишь забавная заметка о 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... Удивительно, как быстро можно найти ответы, задавая вопрос о встроенной документации.