2

関連するコンテンツ/段落を含むテキストファイルがあります。テキストから段落Aを切り取って殺したとしましょう。この場合に呼び出される関数を記述したいので、関連する段落(たとえば、B)も削除されます。良い例は、引用/参照が含まれているドキュメントです。-つまり、そのテキストを削除すると、引用も削除されます-MSOfficeのように。理論的には:

1)カット用のフックが必要です-これまで適切なフックを見つけることができませんでした2)おそらく正規表現を使用した検索機能-関連するテキストを見つけるために3)そのテキストを削除します

進め方を教えてもらえますか?各ステップのヒントなど。

4

2 に答える 2

2

このような場合の関数を作成するのは簡単です。

(defun when-one-kill-one-and-three ()
  "If a buffer has a string \"one\", it deletes it.
If in this buffer exists also a string \"three\", it will be killed afterwards. "
  (interactive "*")
  (save-excursion
    (save-restriction
      (widen)
      (goto-char (point-min))
      (while (search-forward "one" nil t 1)
        (kill-region (match-beginning 0) (match-end 0))
        (when (search-forward "three")
          (kill-region (match-beginning 0) (match-end 0)))))))
于 2012-07-24T15:06:35.323 に答える
1

1)カットのフックはないと思いますが、カットをアドバイスすることはできます(defadvice ..)

2)どういうわけかあなたのテキストをマークアップして、検索でそれを見つけるべきです(あなたがそれを検索するように番号を入れてください)..

3)テキストを削除するには、kill-regionを使用できます。

于 2012-07-24T14:16:51.190 に答える