Vim支持字符算术吗?

时间:2015-07-23 02:14:53

标签: regex vim

我想将a替换为1,将b替换为2,依此类推。如何在vim正则表达式中实现此过程?

e.g:

disk1
disk2
disk3
...

=>

diska
diskb
diskc
...

2 个答案:

答案 0 :(得分:1)

尝试此命令:

:s/2[0-6]\|1[0-9]\|[1-9]/\=nr2char(96+submatch(0))/

它会查找数字1-26并用字母a-z替换它们。你自己必须指定一个范围;原样,它只会在一行上执行一次替换。 (尝试:%s/.../.../g在整个文件中每行执行多次替换。)

答案 1 :(得分:0)

@Mauris答案几乎解释了你需要什么,但如果你想增加/减少一个数字,你可以使用 Ctrl + a / x < / KBD>。这应适用于数字和字母,但如果它不适用于字母:使用set nrformats+=alpha

对于这种情况,您可以在宏中使用它。