Режим Bash vi: имитация ввода в привязке

349
MiniLud

У меня есть функция fh()в моем .bashrc. Я хочу связать Ctrl-F в vi-insert-mode, чтобы запустить эту функцию.

я пытался

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

Это вводит fh в мой терминал и пытается автозаполнить команду. После поиска по сети я был впечатлен, что \ n должен был имитировать нажатие клавиши Enter.

Я обнаружил множество потоков по связыванию команд bash в режиме vi-insert-mode, но ни один из них не говорит о функциях.

Есть ли способ сделать привязку в .inputrc вместо .bashrc?

0

2 ответа на вопрос

1
MiniLud

Конечно, я нахожу решение через 5 минут после публикации вопроса, но после нескольких часов поиска ответа.

Я заменил \nбуквальный символ для ввода, который показан как ^Mв vim.

Цитата из bakunins комментарий в этой теме от unix.com

В любом случае, чтобы ввести буквальный «ключ ввода», откройте файл скриптов в vi.

  • Поместите курсор туда, где вы хотите ввести ключ, и используйте «i», чтобы перейти в режим вставки.

  • Затем введите CTRL-V, что заставит vi принять следующий символ как литерал. Затем нажмите клавишу ВВОД, что должно привести к появлению на экране «^ M».

Обратите внимание, что «^ M» - это не два символа (символ каретки и «M»), а один. Вы увидите это, когда вы пройдете по нему курсором.

0
Scott

Вы должны сделать это сценарием вместо функции.

Похожие вопросы