2011-01-24 49 views
9

Vim có một tính năng tuyệt vời cho phép người dùng xóa nội dung của thẻ, trong dấu ngoặc kép, vv Ví dụ, trong tình huống sau đây:Làm thế nào để xóa nội dung của một thẻ HTML trong Emacs

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

một lon loại dit (“ xóa trong thẻ ”) để xóa nội dung của thẻ <h1> HTML.

Ngoài ra còn có các phím tắt khác, ví dụ:

  • di( xóa nội dung trong ngoặc ()
  • di" xóa nội dung trong dấu ngoặc kép "".
  • di' để xóa nội dung trong một dấu ngoặc đơn ''.

Có bất cứ điều gì như thế này tồn tại cho Emacs không?

Tôi biết là zap-to-char và nXhtml là sgml-delete-tag, nhưng họ không thực hiện những gì tôi muốn.

Trả lời

5

Mã này hoạt động như thế nào cho bạn?

(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

Tuyệt vời. Cảm ơn! –

Các vấn đề liên quan