Подтвердить что ты не робот

Обтекание выбора текста в закрытых символах в Emacs

В Textmate я могу обертывать символы ('(', '[', '' 'и т.д.) вокруг текста, выбирая его и нажимая на открывающий символ. Например, если я выбираю word и нажимаю (, он станет (word). Что Emacs вызывает эту функцию и как ее включить?

4b9b3361

Ответ 2

Для парнеров вы можете сделать M-(. Для скобок/фигурных скобок/кавычек вы можете сделать:

(global-set-key (kbd "M-[") 'insert-pair)
(global-set-key (kbd "M-{") 'insert-pair)
(global-set-key (kbd "M-\"") 'insert-pair)

Обратите внимание, что если у вас нет выделенного региона, он просто вставляет пару ударов и помещает курсор между ними. Кроме того, удобно для удаления совпадающих символов:

(global-set-key (kbd "M-)") 'delete-pair)

EDIT:

Хорошая точка в комментариях об переопределении backward-paragraph. Вы можете привязать его к C-{, что может помешать чему-то в основном режиме. insert-pair берет последний ключ и выполняет поиск, чтобы увидеть, какую пару вставить, поэтому, если вы не хотите привязывать его к something-{, вы можете привязываться к этой функции:

(defun my-insert-braces ()
  (interactive)
  (if (region-active-p)
      (insert-pair 1 ?{ ?})
    (insert "{}")
    (backward-char)))

Ответ 6

Существует текстовый режим.

Из Emacswiki:

См. textmate-mode для попытки иметь поведение TextMate для скобок и кавычек (автоматическое закрытие, перезапись, интеллектуальное удаление).

http://code.google.com/p/emacs-textmate/

Ответ 7

Там теперь Corral. Его поведение "делать то, что я имею в виду" делает этот процесс намного быстрее, чем ручной выбор текста и нажатие клавиши.

(отказ от ответственности: я автор)

Ответ 8

Если вы используете smartparens, просто выберите текст и введите пару. Smartparens wiki: Обертка

Ответ 9

Начиная с Emacs 24.1 (выпущен 2012-06).
Поместите это в свой emacs init: (electric-pair-mode 1).
Теперь, если вы выберете слово и нажмете (, оно станет (слово). То же самое для ", [, {и т.д.