Pregunta

Surround.vim es una ingeniosa vim extensión que le permite envolvente con bloques de texto, entre paréntesis, aparatos ortopédicos, y casi cualquier carácter arbitrario "envolvente". Es compatible con el párrafo envolvente y la palabra, pero con frecuencia lo uso en el modo visual. Estoy jugando con Emacs y preguntando si hay algo similar; algo que me permita seleccionar una región y luego hacer que la región marcada (o rectángulo) cerrado con apoyos, soportes o etiquetas.

¿Fue útil?

Solución

recapitulación región es lo que necesita.

smartparens es otra excelente opción si es necesario para envolver algo con delimitadores, etiquetas, etc.

Otros consejos

mal-envolvente . Que emula el comportamiento vim, pero por desgracia no podría ser lo que los usuarios quieren la mayoría de emacs, ya que requiere la modo vim . Sin embargo, puede ser o puede no ser adecuado para usted ya ha hecho referencia surround.vim en el primer lugar.

mal-envolvente parece apoyar la mayoría de las características en Surround.vim, incluyendo la modificación entorno.

No creo que haya nada incorporado para las etiquetas, pero para parens que puedo hacer H - ( Para abrazaderas / apoyos / cotizaciones que podría hacer:.

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

Tenga en cuenta que si usted no tiene una región resaltada, se acaba de insertar el par de whatevers y poner el cursor en medio de ellos. También es útil para eliminar whatevers a juego está

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

Si desea insertar pares de etiquetas, que es algún elisp simple:

(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 ">"))))

No se conoce ninguna forma de hacerlo en Emacs, ni siquiera con un módulo.

Mi Elisp es un poco oxidado, comprar aquí es una función simple que encierre la región actual (texto marcado) o la palabra entre comillas ( "):

(defun insert-quotes ()
  "Inserts quotes (\") around the current region or work."
  (interactive)
  (let (start end bounds)
    (if (and transient-mark-mode mark-active)
        (setq start (region-beginning) 
              end (region-end))
      (progn
        (setq bounds (bounds-of-thing-at-point 'symbol))
        (setq start (car bounds) 
              end (cdr bounds))))
    (goto-char start)
    (insert "\"")
    (goto-char (+ end 1))
    (insert "\"")))

Sí, no es un clon de surround.vim, a partir de 1 semana: http: //github.com/timcharper/vimpulse-surround.el

Se requiere vimpulse, que requiere vim. Pone en práctica muchas de las funciones de surround.vim.

mal-envolvente es lo que busca.

gracias.

Así que desea seleccionar una región o similar y luego hacer un cuadro a su alrededor como un varios modos de hacer por los comentarios? Creo emacs-wiki ( http://www.emacswiki.org/ ) tiene un poco de arte ascii-line (y una herramienta figlet también) que va a hacer eso. La búsqueda de la caja, bastante, arte lineal ...

############################
#                           #
# I AM REGION, WE ARE  MANY #
#                           #
############################
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top