Ответ
Нажмите ESC, чтобы перейти в режим vi-command, затем нажмите v. Bash запустит выбранный вами $ EDITOR. Если вы не выбрали один, Bash запустит vi (визуальный редактор).
объяснение
Почему Bash ESC v запускает vi?
Потому что bashline.c
Bash включает вызов функции:
rl_bind_key_if_unbound_in_map ('v', vi_edit_and_execute_command, vi_movement_keymap);
Что такое vi_edit_and_execute_command
? Это функция Bash C, определенная в другом месте в bashline.c
.
Один в сторону. Я немного поэкспериментировал, и теперь я подозреваю, что это правда. Связывание функций Bash C странно. Вы можете сделать это из исходного кода Bash, но это невозможно сделать, используя встроенную bind
в приглашении Bash. И, как только вы это сделаете, встроенная bind
, кажется, даже не узнает, что это было сделано.
Я благодарю Гленна Джекмана за указание на то, что ответом является ESC v , и dualbus и Riviera из Freenode #bash за помощь в выяснении объяснения выше.