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