Bash modo vi: simulando Enter na ligação

0

Eu tenho uma função fh() no meu .bashrc. Eu quero ligar Ctrl-F no vi-insert-mode para executar esta função.

Eu tentei

bind '"\C-F":"fh\n"'

Isso digita fh no meu terminal e tenta autocompletar o comando. Depois de ter pesquisado na web, eu estava sob a impressão de que \ n deveria simular um pressionamento da tecla Enter.

Eu encontrei muitos tópicos sobre a vinculação de comandos bash no vi-insert-mode, mas nenhum que fala sobre funções.

Existe talvez uma maneira de fazer uma ligação em .inputrc em vez de .bashrc?

    
por MiniLud 11.07.2018 / 01:53

2 respostas

1

É claro que encontro uma solução 5 minutos depois de postar a pergunta, mas depois de horas procurando uma resposta ..

Substitui \n pelo caractere literal para inserir, que é mostrado como ^M no vim.

Cite o comentário de bakunins em this thread do unix.com

Anyway, to enter a literal "ENTER key" open your scripts file in vi.

  • Position the cursor where you want to enter the key and use "i" to go into insert mode.

  • Then enter CTRL-V, which makes vi accept the next character as literal. Press the ENTER key then, which should result in a "^M" appearing on the screen.

Notice, that "^M" is not two characters (caret and "M"), but one. You will see that when you go over it with the cursor.

    
por 11.07.2018 / 02:17
0

Você precisa criar um script em vez de uma função.

    
por 11.07.2018 / 02:00