-1

在搜索列表时,有一些线程显示如何扩展数字范围的可视块。但是我的要求不一样。

在清理 LaTeX 文件时,我曾经得到\cite{1}-\cite{10}应该更改为\cite{1,2,3,4,5,6,7,8,9,10}. 有没有办法让这种清理更容易,以便 vim 脚本使用s///gec.

例如,我在一个函数(比如)中添加了几条清洗线s///gec,它们将通过在可视模式下按键来执行。我需要将新函数(比如说)添加到这个函数中。s///geBasicClean()<F5>ExpandCite()

例如,

function! BasicClean()
  " add a new function ExpandCite() for expanding \cite{1}-\cite{10}
  call ExpandCite()
  s/},\s*\\cite{/,/gec
  " ...
endfunc

如何编写ExpandCite()函数来实现我的要求?

4

1 回答 1

1

您可以\=在替换命令中使用后跟表达式来执行更复杂的替换。

:%s/\\cite{\(\d\+\)}-\\cite{\(\d\+\)}/\='\cite{'.join(range(submatch(1),submatch(2)),',').'}'/ge

如需更多帮助,请参阅:

:h :s\=
:h submatch(
:h range(
于 2013-03-16T19:39:29.783 回答