0

我想使用 kill-ring 和寄存器的一些功能创建一个函数。

基本上我想创建一个新模式,在该模式r后面p应该把段落放在一个列表中( r w 应该把这个词放在那个列表中)。

然后,i应该插入该列表中的任何内容。

这是我目前的注册:

(defun Navi-register-region ()
(interactive)
(copy-to-register ?N (region-beginning) (region-end))
)

我对列表的历史不感兴趣,我只想让它不断地用当前选择的字符串替换变量中的字符串。

编辑:所以这就是我现在所拥有的,尽管它错误“错误的类型参数编号或标记”

(defun Navi-word-reg ()
  (interactive)
  (save-excursion 
          (right-word)
          (push-mark (point) t t)
          (left-word)
          (kill-ring-save (region-beginning) (region-end))
          (defvar bla (car kill-ring-yank-pointer))
          ; and here I would use something to remove last item from kill-ring 
              ))

当我用 ( interactive "r") 尝试它时,变量包含:

#("bla bla bla" 0 20 (fontified t))

使用以下功能时。

(defun Navi-region-reg (beg end)
      (interactive "r")
      (save-excursion (kill-ring-save (region-beginning) (region-end))
              (defvar bla (car kill-ring))))

如何提取“bla bla bla”?仍然......另一个问题是我希望能够将单词添加到变量“ bla”中。用 ( ) 是不可能的,interactive "r"对吧?

4

1 回答 1

0

我花了很长时间,但它在这里(你自己额外的“注册/杀死环”:

(defun Navi-region-reg ()
  (interactive)
  (save-excursion (left-word 1)
          (mark-word) 
          (kill-ring-save (region-beginning) (region-end))
          (setq Navireg (substring-no-properties (car kill-ring)))
          (setq kill-ring (cdr kill-ring))))

并插入

(defun Navi-insert ()
 (interactive)
 (insert Navireg)
)
于 2012-11-05T22:16:23.367 回答