По умолчанию при вводе информации в командной строке в mutt
, вы можете очистить приглашение с помощью Ctrlg, как описано в руководстве :
^ G н / д прервать
Я пытался связать эту функцию с Escape. К сожалению, abort
нет в списке доступных функций, ни в руководстве , ни в источнике .
Я пытался использовать это в моем .muttrc
:
редактор привязок <esc> прервать
но выдает ошибку:
Ошибка в /home/jason/.mutt/muttrc, строка 143: прервать: нет такой функции на карте
Я попытался использовать другую карту, как ( generic
) и экспериментировал с другими вымышленными функциями, вроде clear
, безрезультатно.
Как бы я связал, Escapeчтобы очистить строку подсказки?
mutt
key-mapping
jasonwryan
источник
источник
^[
чтобы он не был showtopper (я в любом случае не использую привязки, которые полагаются на него).Esc
,Esc
отправит два символа ESC. Вы также можете нажатьEsc
один раз и подождать около одной секунды (тайм-аут по умолчанию, ожидающий оставшуюся часть escape-последовательности).Ответы:
Это невозможно с привязками клавиш. Ctrl-Gжестко запрограммирован в Mutt на более низком уровне, чем обработка макросов или связывания клавиш (см
mutt_getch()
. исходный код Mutt, в основе всего пользовательского ввода в Mutt, который возвращает ошибку при^G
).тоже не сработает.
Что вы можете сделать, это настроить свой терминал для отправки
^G
после нажатияEscapeС xterm:
Если вы используете
screen
, вы также можете сделатьперед вызовом Mutt и восстановлением его впоследствии (к сожалению, не похоже, что вы можете иметь привязки клавиш для каждого окна на экране). Кроме того, это будет проблемой, если ваш редактор сообщений электронной почты - vi.
источник
Мне кажется, это действительно плохая идея связать побег ControlG. Я пришел сюда в поисках дурацкого решения, но так как кажется, что его нет, я дам ответ из того, что я делаю, для всех, кто случайно наткнется на это. Это не оптимально, но это не повлияет на другие программы:
или
Использование чего-то вроде xdotool или xsendkey для фальсификации control + g работает и никуда не денется. Для меня существует визуальная задержка выхода из редактора строк, но привязки индекса будут работать немедленно, и визуальная задержка исчезнет, как только вы используете привязку индекса. Первый ввод необходим для того, чтобы Mutt не просто напечатал «....» и превратил его в заголовок, поисковый запрос или что-то в этом роде.
источник
Это решение настолько плохое, что автор предпочел отредактировать исходный код Матта, чтобы избавиться от ^ G
Предупреждение: это решение кажется несовместимым с OSX, Emacs и другими приложениями, которые используют Ctrl+G
После моего первого дня в Mutt я почти по ошибке использовал ^ G в Vim ... Затем я попробовал кое-что, что, кажется, работает здесь, в оконном менеджере i3 и xfce-Terminal .
Добавил эту строку в
~/.i3/config
:Пришлось использовать,
"\[Escape]\[Control]\[g]"
потому что только"\[Control]\[g]"
заставил его перестать работать в Vim.Если вы не используете i3, я думаю, что вы можете использовать xbindkeys для запуска
xvkbd -xsendevent -text "\[Escape]\[Control]\[g]"
при Escнажатии.Это не красивое решение ... Это может сделать ваш Escключ непригодным для использования в некоторых программах, но, по крайней мере, здесь это выглядит нормально
РЕДАКТИРОВАТЬ:
Теперь я вижу, что часть Ctrl+ Gзаставляет Vim показывать позицию в файле. Ничего особенного, пока.
Эта ссылка, кажется, имеет лучшее решение, но для urxvt : http://www.unixli.com/q/answers-urxvt-map-esc-key-to-key-sequence-83211.html
источник