1

Я часто нажимаю неправильную комбинацию клавиш и открываю какой-то непонятный режим минибуфера. Я должен нажать ESC три раза (я думаю), что довольно раздражает. Как заставить emacs выйти из минибуфера одним нажатием ESC?

4 ответа4

2

Я считаю, что ergoemacs использует ключ ESC так, как вы хотите. Это также меняет множество других привязок клавиш Emacs - но, вероятно, в соответствии с вашим желанием "избегать длительных нажатий клавиш Emacsy".

[ Предостережение: я не эксперт по ergoemacs, и я не рекомендую использовать ESC таким образом. ESC играет особую роль в Emacs в отношении модификатора Meta и таблиц ключей, и если рассматривать его иначе, рано или поздно возникает проблема. (Точно так же C-g является фундаментальным для Emacs, и в некоторых случаях даже жестко запрограммирован, поэтому он не может быть заменен на 100% другим ключом.)]

1

Я обычно использую следующую комбинацию клавиш : Ctrl - X (войти в командный режим) K (Kill), затем Enter.

Это должно убить текущий мини-буфер.

0

Я хочу сделать то же самое: нажмите ESC, чтобы отменить функцию save-buffers-kill-terminal во время приглашения "Сохранить файл".

Я пытался перепривязать ESC во многих таблицах ключей минибуфера, как упоминалось в этом разделе вопросов и ответов. Тем не менее, я все еще не могу отменить приглашение "Сохранить файл" от ESC.

После поиска некоторых исходных кодов elisp я обнаружил, что query-replace-map является родителем-раскладкой map-y-or-np, который используется save-buffers-kill-terminal. Итак, мое последнее исправление:

(define-key query-replace-map (kbd "<escape>") 'keyboard-quit)

Обратите внимание, что он отключает все ярлыки с мета-ключом.

0

Спасибо за все ваши идеи. Похоже, это должно сработать:

(define-key minibuffer-local-map (kbd "ESC") 'keyboard-escape-quit)

Это работало только на isearch. Похоже, мне пришлось бы перепривязать его для каждой функции (smex, ibuffer и всех тех, которые используют минибуфер).

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