2013-05-07 3 views
2

Я немного поработал и не могу найти то, что искал, поэтому решил, что спрошу. Это может быть связано с тем, что вы не используете правильные условия.Избегайте перекрытия клавиш в emacs?

Я новичок в emacs, используя vim восемь лет или около того, но мне действительно нужен редактор, который я могу преобразовать в свою волю, чтобы переключиться. Теперь в vim есть ключ-лидер, который вы можете определить, чтобы избежать наложения привязок с различными расширениями. В emacs предполагается, что аккорды отложены только для пользователя, но различные режимы не придерживаются этого. Есть ли способ в emacs, я могу обеспечить, чтобы мои пользовательские привязки не перекрывались, как и лидерский ключ vim? Причина, по которой я спрашиваю, я хочу сохранить свои привязки здоровыми.

+2

Если библиотека нарушает соглашения о привязке ключей, ее следует сообщить автору библиотеки как ошибку. – phils

ответ

5

В руководстве детали конвенции:

С-чяг(elisp) Key Binding ConventionsRET

Последовательности зарезервированы для конечного пользователя являются:

  • С-С< письмо > для любого (не модифицированного) верхнего или нижнего регистра: [A-Za-z]
  • Функциональные клавиши F5, F6, F7, F8, F9 (опять же, без клавиш-модификаторов)

Я рекомендую использовать самый простой из этих последовательностей в качестве префикса привязок, как вы можете следовать за ними с любым ключом t, предоставляя вам большое количество опций.

Чужое рекомендация, что мне понравилось было отвязать C-Z если вы обычно не использовать suspend-frame, как открывает еще один удобный префикс.

Конечно, если вы установили ключи модификатора Super и Hyper для вашей клавиатуры OS &, вы, вероятно, получите более удобные последовательности, чем вы могли бы найти для использования. Это очень разумный вариант для многих людей с дополнительными клавишами-модификаторами, которые можно найти на многих современных клавиатурах.

И, наконец, библиотека key-chord является довольно популярным способом создания новых удобных и неконфликтных привязок с использованием пары (немодифицированных) клавиш, набранных вместе или в быстрой последовательности (или один ключ, дважды постукиваемый). Это очень хорошо работает в моем опыте, хотя вы, очевидно, должны быть очень осторожны, чтобы избежать связывания последовательностей, которые могут возникнуть естественным образом.

+0

Спасибо, куча, поэтому я предполагаю, что могу быть в безопасности, используя аккорды с C-c. Я надеюсь, что у меня не будет никаких столкновений. –

1

Я лично использую C- 'как мой «лидерский ключ» для моей личной карты привязки клавиш. Вы можете создать префикс и привязку ключи к нему так:

(global-set-key (kbd "C-'") ctl-quote-map) 
(define-key ctl-quote-map (kbd "C-p") 'stumpwm-move-window-up) 
(define-key ctl-quote-map (kbd "C-n") 'stumpwm-move-window-down) 
(define-key ctl-quote-map (kbd "C-f") 'stumpwm-move-window-right) 
(define-key ctl-quote-map (kbd "C-b") 'stumpwm-move-window-left) 
(define-key ctl-quote-map (kbd "r") 'stumpwm-interactive-resize-window) 

Nobbody шаги над чем-то, что скрывать, и если вы используете левый контроль это сбалансированное движение двойного мизинца. C-; также является хорошим, и это то, что я использую для ключа escape stumpwm.

+0

В качестве побочного примечания, если бы я хотел установить C-on caps lock, могу ли я сделать это только для emacs или мне нужно отобразить его на системном уровне? –

+0

Если вы используете linux, используя X-окна, посмотрите «man xmodmap» для низкоуровневого способа переназначения блокировки Control/Caps в конце справочной страницы. Я не думаю, что вы можете переназначить управление в emacs. –

+0

Хорошо спасибо, что я знал о xmodmap, просто задавался вопросом, может ли emacs сделать это для себя. Еще раз спасибо. –

1

Есть Emacs keybinding conventions, некоторые из которых честно удивили меня.

Соответствующие части заключаются в том, что C-c [a-zA-Z] и <F[5-9]> зарезервированы для конечных пользователей.