2011-01-24 45 views
9

Vim有一個真棒功能,允許用戶刪除的標籤內容,引號內,等等。例如,在以下情況:如何刪除HTML標記的內容在Emacs

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

一個CAN型d我噸(「刪除標籤」)刪除<h1> HTML標籤的內容。

還有其他快捷鍵,例如:

  • d括號內刪除內容()
  • d刪除內容雙引號""
  • di'刪除單引號內容''

這樣的事情對於Emacs是否存在?

我知道zap-to-char和nXhtml的sgml-delete-tag,但他們不完全按照我想要的。

回答

5

這段代碼是如何工作的?

(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

太棒了。謝謝! – 2011-01-24 22:42:15