我在Vim中处理一个jinja文件,由于某些原因,它的格式很差。我有很多变量在花括号中,花括号之间留有空格。例如:
this is my jinja variable { { foo } }
我想去掉花括号之间的多余空格。
This my jinja variable {{ foo }}
如果我在命令模式下链接两个替代命令,这就可以正常工作。
:%s/{ {/{{/g | %s/} }/}}/g
但是,如果我将替换命令 Package 在Mapnoremap <leader>cb :%s/{ {/{{/g | %s/} }/}}/g <CR>
中,则只执行第一个替换命令,而不执行第二个。
This my jinja variable {{ foo } }
我做错了什么?
2条答案
按热度按时间olhwl3o21#
您可以利用撷取群组,使用一个替代来完成此作业:
如果在一行中有两次这样的模式,这并不是说会失败:
因为它会变成:
有人可能会沿着一个实际的解释,解释为什么你的方法不起作用,所以你可能不应该接受这个答案。
klsxnrf12#
由于
|
:您可以使用以下几种方法重写它:
请参阅
:help map-bar
。顺便说一句,
:noremap
包含了太多的模式,从长远来看,你可能会发现这是个问题。如果你想要一个普通的模式Map,请明确地说明它: