我想对 Vim 中的一系列行进行全局替换:
:s/pattern/replacement/g
Run Code Online (Sandbox Code Playgroud)
“模式”是一组中的一个字符,例如[BEINS]
,“替换”是单个字符。然而,问题在于单个字符是作为 ASCII/Unicode 字符的 2 位十六进制表示形式提供给我的。显然,我可以查找十六进制 ASCII 图表以查看例如5F
下划线字符,然后我可以输入_
正则表达式的替换部分。
有没有办法在正则表达式的右侧输入十六进制?
我尝试过但不起作用的事情包括:
:%s/[BEINS]/\x5F/g
:%s/[BEINS]/\\x5F/g
Run Code Online (Sandbox Code Playgroud)
在我的Linux工作站就可以输入:Ctrl- Shift-U然后是十六进制代码之后Enter,但我在想,如果有一个Vim特定的方式把十六进制的正则表达式的替换零件。
您可以尝试使用ctrl+v
:%s/[BEINS]/<ctrl>-vx5F/gc
Run Code Online (Sandbox Code Playgroud)
这是ctrl+上的 vim 帮助页面v:
与CTRL+V小数,字符的八进制或十六进制值可以直接输入。这样你就可以输入任何字符,除了换行符 (, value 10)。字符值的输入有五种方式:
first char mode max nr of chars max value
(none) decimal 3 255
o or O octal 3 377 (255)
x or X hexadecimal 2 ff (255)
u hexadecimal 4 ffff (65535)
U hexadecimal 8 7fffffff (2147483647)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1834 次 |
最近记录: |