我想使用kill-ring和register的一些功能创建一个函数。
基本上我想创建一个新模式,其中 r 后跟 p 应该将段落指向列表( rw 应该把这个词放在那个列表中。)
然后, 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"
)对吗?
答案 0 :(得分: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)
)