我的文本文件如下所示:
laudare
at
dominus
serere1
enim
我需要的是:
<laudare>
<at>
<dominus>
<serere1>
<enim>
我是编程的初学者,我试图编写这个elisp函数:
(defun insert-angle-brackets-at-word ()
"Insert angle brackets, i.e. <WORD>."
(interactive)
(goto-char (point-min))
(insert "\<")
(forward-word)
(insert "\>")
(forward-line 1))
这个功能显然&#34;工作&#34;仅用于文本文件中的第一个单词。该函数应该如何用于整个文本文件?
答案 0 :(得分:0)
无需循环,您可以使用replace-string
替换所有换行符:
(goto-char (point-min))
(insert "<")
(replace-string "\n" ">\n<")
(goto-char (point-max))
(insert ">")
答案 1 :(得分:0)
正如其他人所说,您可以使用查找和替换,但您可能还需要查看macros和multiple cursors。根据您的想法,它们可能是未来实现此类行为的更简单方法。
使用微距,您可以按f3
开始录制微博,然后使用home
转到该行的开头,使用<
删除开头delete
,使用M-f
前进一个单词,使用>
删除结束delete
,然后使用down
然后home
向下到下一行的开头}。使用f4
完成宏。
所以,回顾一下:f3
,home
,delete
,M-f
,delete
,down
,home
, f4
。
然后您可以调用宏(也使用f4
),它将从当前点位置重新执行该系列命令。提供带C-u
的前缀参数以获得多次执行。
多个游标的工作方式类似,但您可以同时在多个点上执行操作。这不是我试过的包,但它使用相同的原则。