【问题标题】:(basic) Elisp programming: Special hook for Cut function in Emacs(基础)Elisp编程:Emacs中Cut函数的特殊钩子
【发布时间】:2012-07-24 14:06:58
【问题描述】:

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

1) 我需要一个用于 Cut 的钩子 - 到目前为止我找不到合适的钩子 2)可能带有正则表达式的搜索功能 - 查找相关文本 3) 删除该文本

您能建议我如何进行吗?每个步骤等的提示。

【问题讨论】:

标签: elisp


【解决方案1】:

为这种情况编写函数很容易:

(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)))))))

【讨论】:

    【解决方案2】:

    1) 我认为 Cut 没有钩子,但您可以建议 Cut (defadvice ..)

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      相关资源
      最近更新 更多