我有一个文本文件,里面有相关的内容/段落。假设我从文本中删除/杀死A段。我想编写一个在这种情况下调用的函数,因此相关的段落 - 比方说B - 也被删除了。一个很好的例子是一个带有引用/引用的文档。 - 即每当你删除该文本时,引文也会被删除 - 就像MS Office所做的那样。从理论上讲,我认为:
1)我需要一个Cut的钩子 - 到目前为止我找不到合适的钩子 2)具有正则表达式的搜索功能可能 - 找到相关文本 3)删除该文本
你能告诉我怎么办吗?每个步骤的提示等。答案 0 :(得分: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)))))))
答案 1 :(得分:1)
1)我认为Cut没有钩子,但你可以建议切割(defadvice ..)
2)您应该以某种方式标记您的文本并通过搜索找到它(放一个数字以便您搜索它)..
3)要删除文本,您可以使用kill-region我想