在Emacs中,我想搜索某些字符并替换它们。它们可以用unicode号分隔。例如,低于3个字符的unicode号不同。
á(#xe1), ⓐ(#x24d0), (#x1d4b6)
如果我想搜索范围#x1d000到#x1dfff之间的字符,然后我将使用regxp replace为每个字符添加双引号(""),该怎么办?
答案 0 :(得分:4)
首先,您可以使用键绑定C-x 8 C-m
通过十六进制代码输入Unicode字符(该命令称为insert-char
)。因此,请键入C-x 8 C-m
,输入1d000
,然后点击RET
以插入Unicode代码为1d000的字符。
然后我们可以用它来搜索和替换。
C-M-%
以运行命令query-replace-regexp
[
,然后输入C-x 8 C-m 1d000 RET
,然后输入-
,然后输入C-x 8 C-m 1dfff RET
,最后输入]
。也就是说,搜索1d000和1dfff之间范围内的任何字符。 (这类似于“普通”正则表达式[a-z]
,它匹配a
和z
之间的所有字符,即所有小写字符。)"\&"
。 \&
是用于插入与搜索表达式匹配的文本的特殊序列,因此我们将用双引号将每个匹配的字符包装起来。y
逐个替换匹配,或!
替换所有剩余的匹配。