Search Emacs。如何剪切所有包含的文本;一些“文本/XXX”;从另一个文本?
Windows 10(64位),Emacs 25.1 假设我有文本:Search Emacs。如何剪切所有包含的文本;一些“文本/XXX”;从另一个文本?,search,replace,emacs,Search,Replace,Emacs,Windows 10(64位),Emacs 25.1 假设我有文本: aa11aaa aaaaa "api/method1" bbbbbbb dddeeee ee "api/method2" ddddddd ee2222ezzzzzzzzzzzzzzzzzz "api/method1" eeeeeee aaaaaaa222222222222"api/method3" fffffff xwwwwxx "api/method4" bbbbbbb 我想剪切所有包含“api/XXX”的文本 ,
aa11aaa aaaaa "api/method1" bbbbbbb
dddeeee ee "api/method2" ddddddd
ee2222ezzzzzzzzzzzzzzzzzz "api/method1" eeeeeee
aaaaaaa222222222222"api/method3" fffffff
xwwwwxx "api/method4" bbbbbbb
我想剪切所有包含“api/XXX”的文本
,其中XXX是方法名称(例如method4)
。因此,结果必须是:
aa11aaaaaabbbbb
dddeeeeeddddddd
EE2222Ezzzzzzzzzzzzzzeeeeee
aaaaaa2222222fffffff
xwwwxx bbbbb
我想使用Emacs的内置功能(无需编写自定义elisp脚本或Emacs宏)。您要做的是搜索该字符串并将其替换为空字符串(无字符): 使用要开始搜索和替换的光标,执行以下操作:
M-x replace-string RET api/XXX RET RET
或者,如果需要匹配正则表达式,请改用命令replace regexp
或者,如果要单独检查每个搜索命中并告诉Emacs是否要替换它,请使用query replace
(M-%
)或query replace regexp
(C-M-%
)。你可以点击代码>查询时,从当前位置开始到处替换
使用C-hf
并输入命令名以获取有关该命令的更多信息。例如,C-h f replace string
告诉您:
替换字符串
是
replace.el
(replace-string FROM-STRING TO-STRING &optional DELIMITED START END BACKWARD)
此功能仅供交互使用;
在Lisp代码中,使用向前搜索
和替换匹配
将出现的FROM-STRING
替换为TO-STRING
如果case replace
和case fold search
非nil
和FROM-STRING
没有大写字母。
(保留大小写意味着如果匹配的字符串都是大写或大写,
然后它的替代品被升级或资本化。)
如果query replace skip read only
为非-nil
,则忽略只读匹配,
如果search invisible
为nil
,则忽略隐藏的匹配项,并忽略更多
使用isearch筛选器谓词进行匹配
如果replace lax whitespace
为非-nil
,则字符串中的一个或多个空格
要替换的将匹配
regexp在搜索空白regexp
中
如果replace char fold
为非nil,则匹配使用字符折叠,
i、 它忽略了变音符号和等价词之间的其他差异
字符串
第三个arg分隔(如果是交互式的,则前缀为arg),如果不是nil,则表示替换
只有由单词边界包围的匹配项。负前缀arg表示
向后替换
在开始
和结束
之间的区域上操作(如果两者都是零
,则从点开始
到缓冲区的末尾)。以交互方式,如果瞬态标记模式为
已启用且标记处于活动状态,对区域的内容进行操作;
否则,从点到缓冲区可访问部分的末尾
使用M-n
将最后一个增量搜索字符串拉入微型缓冲区
从字符串
读取
在Lisp程序中使用此函数通常是错误的
您可能需要这样一个循环:
(while (search-forward FROM-STRING nil t)
(replace-match TO-STRING nil t))
运行速度更快,不会设置标记或打印任何内容。
(如果FROM-STRING
可以匹配空字符串,则可能需要更复杂的循环
并且TO-STRING
也为空。)