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

я пытался

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

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

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

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

2 ответа2

1

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

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

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

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

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

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .