Создание M- (поведение по умолчанию в Emacs, когда набирается "(") - PullRequest
7 голосов
/ 05 апреля 2009

Как сделать M- (поведение по умолчанию для ввода открывающего символа "("? Я хочу, чтобы Emacs автоматически вставлял закрывающий ")" после курсора, когда я набираю символ "(" независимо от того, является ли он частью комбинация клавиш M. Кроме того, я хочу распространить это поведение на кавычки, под кавычки, скобки и фигурные скобки. Ввод M- (это боль, и, похоже, нет никаких сопоставимых форм для этих других символов.

Ответы [ 3 ]

6 голосов
/ 05 апреля 2009

Я сам мало пишу, но это то, что я кого-то обманываю. Код входит в ваш .emacs.

(setq skeleton-pair t)
(setq skeleton-pair-on-word t) ; apply skeleton trick even in front of a word.                                               
(global-set-key "[" 'skeleton-pair-insert-maybe)
(global-set-key "{" 'skeleton-pair-insert-maybe)
(global-set-key "(" 'skeleton-pair-insert-maybe)
(global-set-key "\"" 'skeleton-pair-insert-maybe)
5 голосов
/ 05 апреля 2009

Проверьте paredit.el , который поддерживает балансировку паренсов / скобок / кавычек по вашему желанию, а также предлагает множество других функций, помогающих в манипуляциях с s-exp. Если вы собираетесь писать код на Лиспе (как следует из вашего имени), вы, возможно, захотите использовать эту библиотеку в конце концов.

3 голосов
/ 05 апреля 2009

"(" привязано к self-insert-command, а M - '(' равно insert-parenthesis. Вы можете изменить это просто, используя global-set-key или define-key для привязки "(" к insert-parenthesis.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...