A resposta
Pressione ESC para entrar no modo de comando do vi e, em seguida, pressione v . O Bash iniciará o seu $ EDITOR escolhido. Se você não tiver escolhido um, o Bash iniciará o vi (o editor visual).
Explicação
Por que o ESC do Bash v inicia o vi?
Porque o bashline.c
do Bash inclui a chamada de função:
rl_bind_key_if_unbound_in_map ('v', vi_edit_and_execute_command, vi_movement_keymap);
O que é vi_edit_and_execute_command
? É uma função Bash C, definida em outro lugar em bashline.c
.
Um aparte. Eu experimentei um pouco, e o seguinte é o que eu agora suspeito ser verdade. Ligar Bash C funções é estranho. Você pode fazê-lo a partir do código-fonte do Bash, mas parece impossível fazê-lo usando o bind
embutido no prompt do Bash. E, uma vez que você tenha feito isso, o bind
builtin parece não reconhecer que já foi feito.
Agradeço Glenn Jackman por apontando que ESC v é a resposta, e dualbus e Riviera of Freenode #bash por me ajudar a descobrir a explicação acima.