是否有一种巧妙的方法来反转vim中某种类型括号内的字符串,例如
{1,2,3,4,5}
=>
{5,4,3,2,1}
?
答案 0 :(得分:7)
这个命令怎么样?
:%s/{\zs\\(.\\{-}\\)\ze}/\= join(reverse(split(submatch(0), '\zs')), '')/g
答案 1 :(得分:3)
我们的想法是使用大写寄存器名称来利用寄存器的"a
功能。
要实现这一目标,你必须做一些准备工作:
:let @a=""
注册:{,1,2,3,4,5}
}
"AdF,
正常模式下好的,我们走了:
.
,然后按"aP
重复此操作,直到删除所有元素。{,5,4,3,2,1}
以粘贴相反的序列,您将获得:var GS= {
users: {
user1: {
token: "Djaskdjaklsdjklasjd"
}
,
user555: {
token: "zxczxczxczxc"
}
,
user1239: {
token: "ertertertertertret"
}
}
};
答案 2 :(得分:0)
使用正则表达式
:.s/\v(\d+),(\d+),(\d+),(\d+),(\d+)/\5,\4,\3,\2,\1