2011-01-24 27 views
9

Vim tiene una característica impresionante que permite a los usuarios eliminar contenido de las etiquetas, entre comillas, etc. Por ejemplo, en la siguiente situación:cómo eliminar el contenido de una etiqueta HTML en Emacs

<h1> Cursor is here -> █ <- :) </h1> 

una lata tipo de dit (“ eliminar en la etiqueta ”) para borrar el contenido de la etiqueta de <h1> HTML.

También hay otros accesos directos, por ejemplo:

  • di( eliminar el contenido de paréntesis ()
  • di" eliminar el contenido en comillas dobles "".
  • di' eliminar el contenido entre comillas simples ''.

¿Algo como esto existe para Emacs?

Conozco zap-to-char y nXhtml sgml-delete-tag, pero no hacen exactamente lo que quiero.

Respuesta

5

¿Cómo funciona este código?

(defun sgml-delete-tagged-text() 
    "delete text between the tags that contain the current point" 
    (interactive) 
    (let ((b (point))) 
    (sgml-skip-tag-backward 1) 
    (when (not (eq b (point))) 
     ;; moved somewhere, should be at front of a tag now 
     (save-excursion 
     (forward-sexp 1) 
     (setq b (point))) 
     (sgml-skip-tag-forward 1) 
     (backward-sexp 1) 
     (delete-region b (point))))) 
+0

Impresionante. ¡Gracias! –

Cuestiones relacionadas