Есть ли расширение или режим в Emacs, похоже на Surround.Vim?

StackOverflow https://stackoverflow.com/questions/2746484

  •  02-10-2019
  •  | 
  •  

Вопрос

Surround.Vim. Это нефте расширение VIM, которое позволяет вам окружать блоки текста, кронштейны, брекеты и в значительной степени любым произвольным «окружающим» характером. Он поддерживает параграф и слово объем, но я часто использую его в визуальном режиме. Я играю с Emacs и задаюсь вопросом, есть ли что-то подобное; Что-то, что позволит мне выделить регион, а затем иметь отмеченную область (или прямоугольник), заключенный скобами, скобками или метками.

Это было полезно?

Решение

Может быть обтекатель это то, что вам нужно.

SmartWarens другой отличный вариант, если нужно что-то обернуть с разделителями, тегами и т. Д.

Другие советы

я использую злая срена. Отказ Это эмулирует поведение Vim, но, к сожалению, не может быть, что хочет большинство пользователей Emacs, поскольку он требует зло Режим VIM. Тем не менее, это может быть или не может быть именно для вас, так как вы ссылаетесь на Surround.Vim в первую очередь.

Злоеможное окружное, кажется, поддерживает большинство функций в Surround.Vim, в том числе модифицирующих окружающих.

Я не думаю, что есть что-то встроенное для тегов, но для друзей вы можете сделать М- (. Отказ Для скобок / скобок / цитаты вы можете сделать:

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

Обратите внимание, что если у вас нет выделенного региона, он просто вставит пару Whatevers и поставить курсор между ними. Также удобно для удаления сопоставления

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

Если вы хотите вставить пары тегов, это какой-то простой ELISP:

(defun my-insert-tags (tag)
  (interactive "sTag: ")
  (if (region-active-p)
      (let ((beg (region-beginning)))
        (save-excursion
          (goto-char (region-end))
          (insert "</" tag ">")
          (goto-char beg)
          (insert "<" tag ">")))
    (insert "<" tag ">")
    (save-excursion
      (insert "</" tag ">"))))

Не знаю ни одного способа сделать это в Emacs, даже с модулем.

Мой ELISP - это немного ржавый, покупайте здесь простой функцию, которая приложит текущую область (отмеченный текст) или слово с кавычками («):

(Оформление quotes-quints () вставляет цитаты ( ") вокруг текущего региона или работы." (Интерактивность) (пусть (пускание заканчивается) (IF (и MARD MARD MART-ACTIVE) (Active Mode) -Ведининг) End (Region-end)) (Prognogn (границы SETQ (границы-точечные »символ)) (Setq Start (границы автомобиля) Конец (границы CDR)))) (Goto-Char Start)))) (Вставьте «» ») (Goto-Char (+ конец 1)) (вставка"  ""))))

Да, есть клон Surround.Vim, по состоянию на 1 неделю назад: http://github.com/timcharper/vimpulse-surelound.el.

Это требует VImpulse, который требует VIM. Он реализует большую часть функциональности Surround.vim.

может быть злая срена это то, что вы ищете.

Благодарю.

Таким образом, вы хотите выбрать регион или аналогичный, а затем сделать коробку вокруг него, как различные режимы делают для комментариев? Я верю, что Emacs-Wiki (http://www.emacswiki.org/) имеет некоторое арт ASCII-LINE ART (и инструмент для Feglet), который сделает это. Поиск коробки, совсем, линии искусства ...

############################
#                           #
# I AM REGION, WE ARE  MANY #
#                           #
############################
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top