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