vim中括号内字符串的反向顺序

Ray*_* Wu 5 vim

例如,是否有一种巧妙的方法来反转vim中某种类型括号内的字符串

{1,2,3,4,5}

=>

{5,4,3,2,1}
Run Code Online (Sandbox Code Playgroud)

小智 7

这个命令怎么样?

:%s/{\zs\\(.\\{-}\\)\ze}/\= join(reverse(split(submatch(0), '\zs')), '')/g
Run Code Online (Sandbox Code Playgroud)


Wra*_*eng 3

其思想是利用append寄存器的特性,使用大写的寄存器名称。

为了实现这一点,你必须做一些准备工作:

  • 干净的"a寄存器::let @a=""
  • 在第一个元素之前添加一个逗号:{,1,2,3,4,5}
  • 将光标置于}正常模式下

好的,我们开始吧:

  • 执行"AdF,,然后按.重复,直到删除所有元素。
  • 执行"aP粘贴相反的序列,您将得到:{,5,4,3,2,1}
  • 删除第一个逗号