x
x
x
更改为
1
2
3
现在,我使用Perl单线:
perl -pi -e '$x=$.; s/x/$x/' myfile.txt
我认为UltraEdit可以通过垂直选择和替换来实现。可以在vim中完成吗? (我的示例在这里假设'x'在一行中全部存在。但是我实际文件中的行要复杂得多。)
#1 楼
是的,vim可以做到这一点!进行全局搜索x
,并将其替换为\=printf("%d", line('.')
。例如::%s/x/\=printf("%d", line('.'))
如果需要,还可以将
x
更改为其他搜索。说明:
这将用评估寄存器
x
代替\=
的所有出现(或您搜索的任何东西)。该寄存器评估vimscript代码,并返回一个字符串。在这种情况下,要评估的代码是“将我们所在的行打印为十进制数字” #2 楼
由于您提到了垂直选择和替换,因此您也可以这样做。使用CtrlV来选择要替换的文本锁,然后选择c
并键入0,以将其替换为0。然后选择0:然后按
g<c-a>
(g + Ctrla):如果您已经更换了单列,则可以使用
gv
快速重新选择同一区域。