В Textmate я могу обертывать символы ('(', '[', '' 'и т.д.) вокруг текста, выбирая его и нажимая на открывающий символ. Например, если я выбираю word
и нажимаю (
, он станет (word)
. Что Emacs вызывает эту функцию и как ее включить?
Обтекание выбора текста в закрытых символах в Emacs
Ответ 1
Автопарк - лучший из этих инструментов.
Ответ 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)))
Ответ 3
Я использую http://www.emacswiki.org/emacs/ParEdit. M- (делает именно это.
Ответ 4
Вы можете взглянуть на wrap-регион.
Ответ 5
Я бы посмотрел и на скелет-режим http://ggorjan.blogspot.com/2007/05/skeleton-pair-mode-in-emacs.html
Он очень гибкий для круглых скобок.
Ответ 6
Существует текстовый режим.
Из Emacswiki:
См. textmate-mode для попытки иметь поведение TextMate для скобок и кавычек (автоматическое закрытие, перезапись, интеллектуальное удаление).
Ответ 7
Там теперь Corral. Его поведение "делать то, что я имею в виду" делает этот процесс намного быстрее, чем ручной выбор текста и нажатие клавиши.
(отказ от ответственности: я автор)
Ответ 8
Если вы используете smartparens, просто выберите текст и введите пару. Smartparens wiki: Обертка
Ответ 9
Начиная с Emacs 24.1 (выпущен 2012-06).
Поместите это в свой emacs init: (electric-pair-mode 1).
Теперь, если вы выберете слово и нажмете (, оно станет (слово). То же самое для ", [, {и т.д.