在 vim 中我有一行这样的文本:
abcdef
Run Code Online (Sandbox Code Playgroud)
现在我想在每个字母之间添加下划线或其他内容,所以结果如下:
a_b_c_d_e_f
Run Code Online (Sandbox Code Playgroud)
我知道这样做的唯一方法是记录这样的宏:
qqa_<esc>lq4@q
Run Code Online (Sandbox Code Playgroud)
有没有更好、更简单的方法来做到这一点?
:%s/\(\p\)\p\@=/\1_/g
:一个命令。%整个文档。\(\p\)匹配并捕获可打印符号。例如,如果您只想匹配字符,则可以替换\p为。\w\p\@=前瞻检查以确保匹配的(第一个)\p后面跟着另一个\p。第二个,即,\p\@=不构成比赛的一部分。这个很重要。\1填写匹配的(第一个)\p值,并且_是一个文字。g是标准的所有标志。