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

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

25
задан hekevintran 1 June 2010 в 17:12
поделиться

6 ответов

Autopair - лучший из этих инструментов

https://github.com/capitaomorte/autopair

6
ответ дан 28 November 2019 в 20:42
поделиться

Для скобок вы можете использовать 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)

РЕДАКТИРОВАТЬ:

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

(defun my-insert-braces ()
  (interactive)
  (if (region-active-p)
      (insert-pair 1 ?{ ?})
    (insert "{}")
    (backward-char)))
23
ответ дан 28 November 2019 в 20:42
поделиться

Я использую http://www.emacswiki.org/emacs/ParEdit . М- (делает именно это.

7
ответ дан 28 November 2019 в 20:42
поделиться

Вы можете посмотреть wrap-region .

5
ответ дан 28 November 2019 в 20:42
поделиться

Я бы посмотрел также на скелетный режим http://ggorjan.blogspot.com/2007/05/skeleton-pair-mode-in-emacs.html

Он очень гибкий, особенно для круглых скобок.

5
ответ дан 28 November 2019 в 20:42
поделиться

Есть textmate-mode.

Из Emacswiki:

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

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

2
ответ дан 28 November 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: