假设我有一个包含内容的文本文件
1
123
12
12345
Run Code Online (Sandbox Code Playgroud)
如果我想在每行的开头添加一个'a',我可以简单地使用字符串矩形(Cx rt),但如果我想在每行的末尾添加'a',之后文件应该如何成为
1a
123a
12a
12345a
Run Code Online (Sandbox Code Playgroud)
谢谢.
nel*_*age 62
您可以使用匹配行尾的正replace-regexp
则$
表达式元字符来实现此目的.转到缓冲区的开头,然后执行M-x replace-regexp
,并回答$
(和您的文本)两个提示.
或者,在emacs中,为您添加的具体示例a
:
M-< M-x replace-regexp RET $ RET a RET
Tre*_*son 21
Emacs键盘宏是你的朋友.
C-x ( C-e a C-n C-x )
Run Code Online (Sandbox Code Playgroud)
这只是通过以下方式设置键盘宏:启动键盘宏(C-x (),转到行尾(C-e),插入a
,转到下一行(C-n),然后结束宏录制(C-x )).
现在你可以执行它(C-x e),并继续按下e你希望它运行的每一行,或者你可以在一个区域上运行它C-x C-k r.
如果你这么做很多,你可以保存宏,或者你可以编写一个函数.这将是一个这样的功能:
(defun add-string-to-end-of-lines-in-region (str b e)
"prompt for string, add it to end of lines in the region"
(interactive "sWhat shall we append? \nr")
(goto-char e)
(forward-line -1)
(while (> (point) b)
(end-of-line)
(insert str)
(forward-line -1)))
Run Code Online (Sandbox Code Playgroud)