2

我有一个文本文件,其中包含相关内容/段落。假设我从文本中剪切/杀死段落 A。我想编写一个在这种情况下调用的函数,因此相关的段落——比如说 B——也被删除了。一个很好的例子是其中包含引用/参考的文档。- 即,每当您删除该文本时,引用也会被删除 - 就像 MS Office 所做的那样。理论上我认为:

1) 我需要一个用于 Cut 的钩子 - 到目前为止我找不到合适的钩子 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)我认为 Cut 没有钩子,但你可以建议 Cuting(defadvice ..)

2)您应该以某种方式标记您的文本并通过搜索找到它(输入一个数字以便您搜索)..

3)要删除文本,您可以使用 kill-region 我想

于 2012-07-24T14:16:51.190 回答