Vim 交换ex中的字符
我对vim和ex很陌生,我想知道是否有人能帮我解决我不清楚的问题。我想知道如何在模式的每一行或每一次出现时交换字符。例如,如何交换文件中每行的前2个字符。我知道这是可以做到的,而且我很确定这涉及到使用括号来存储字符。但我只知道这些。另外,假设我想用一些字符串替换everyline上的第二个字符,我该怎么做 交换每行的前两个字符:Vim 交换ex中的字符,vim,vi,ex,Vim,Vi,Ex,我对vim和ex很陌生,我想知道是否有人能帮我解决我不清楚的问题。我想知道如何在模式的每一行或每一次出现时交换字符。例如,如何交换文件中每行的前2个字符。我知道这是可以做到的,而且我很确定这涉及到使用括号来存储字符。但我只知道这些。另外,假设我想用一些字符串替换everyline上的第二个字符,我该怎么做 交换每行的前两个字符: :%s/^\(.\)\(.\)/\2\1/g 将每行的第二个字符替换为“字符串”: 有关替换命令的详细信息:将每行中的第二个字符替换为vim中的r::%s/^\(.\
:%s/^\(.\)\(.\)/\2\1/g
将每行的第二个字符替换为“字符串”:
有关替换命令的详细信息:将每行中的第二个字符替换为vim中的
r
::%s/^\(.\)/\1r/
:
将所有行的模式:%s/p/r/
替换为p
(因为r
)李>%
起始行李>^
启动一个组\(
任何字符(本例中的第一个)
结束分组李>\)
任何字符(本例中的第二个字符)李>
返回对第一组的引用(本例中的第一个字符)李>\1
替换文本r
要交换前两个字符:
:%s/^\(.\)\(.\)/\2\1/
可以执行以下操作来交换缓冲区中每行的前两个字符:
:%norm xp
或:
您需要使用:global
命令将上述命令应用于与特定模式匹配的每一行:
:g/foo/norm xp
或:
参考:
:help :normal
:help :global
:help :s
:help range
:g/foo/norm xp
:g/foo/s/\v^(.)(.)/\2\1
:help :normal
:help :global
:help :s
:help range