Envolviendo la selección de texto en caracteres adjuntos en Emacs
text-editor textmate (8)
En Textmate, puedo encerrar los caracteres que encierran (''('', ''['', ''"'', etc.) alrededor del texto seleccionándolo y presionando el carácter de apertura. Por ejemplo, si selecciono word
y pulso (
, se convertirá en (word)
. ¿Cómo llama Emacs a esta función y cómo la habilito?
Ahora también está Corral . Su comportamiento de "haz lo que quiero decir" hace que este proceso sea mucho más rápido que seleccionar el texto manualmente y pulsar la tecla.
(descargo de responsabilidad: yo soy el autor)
Autopair es la mejor de estas herramientas.
Hay modo de compañero de texto.
Desde Emacswiki:
Consulte textmate-mode para un intento de tener el comportamiento de TextMate para paréntesis y comillas (cierre automático, sobrescritura, eliminación inteligente).
Para parens puede hacer M- ( . Para corchetes / llaves / comillas 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 no tiene una región resaltada, solo insertará el par de whatevers y colocará el cursor entre ellos. También es útil para eliminar a los jugadores que estén a juego.
(global-set-key (kbd "M-)") ''delete-pair)
EDITAR:
Buen punto en los comentarios sobre la anulación backward-paragraph
. Podría vincularlo a C- { , que podría interferir con algo en un modo mayor. insert-pair
toma la última clave y realiza una búsqueda para ver qué par se debe insertar, por lo que si no desea vincularlo a algo- { podría enlazar a esta función en su lugar:
(defun my-insert-braces ()
(interactive)
(if (region-active-p)
(insert-pair 1 ?{ ?})
(insert "{}")
(backward-char)))
Puedes echar un vistazo a wrap-region .
Si usa smartparens, simplemente seleccione el texto y luego escriba el par. Smartparens wiki: Envoltura
También echaría un vistazo al modo esqueleto http://ggorjan.blogspot.com/2007/05/skeleton-pair-mode-in-emacs.html
Es muy flexible especialmente para paréntesis.
Yo uso http://www.emacswiki.org/emacs/ParEdit . M- (hace exactamente esto.