如何更改以下LaTeX编码:
\cite{1,3-7,9} 至
\cite{1,3,4,5,6,7,9} 在维姆?我更喜欢使用正则表达式。
发布于 2014-08-24 17:43:54
您可以使用vim的substitute命令来完成这一任务:
:%s/\\cite{1,3-7,9}/\\cite{1,3,4,5,6,7,9}/g 这将将所有出现的\cite{1,3-7,9}替换为\cite{1,3,4,5,6,7,9}。
若要仅替换当前行中存在的事件,可以使用:
:s/\\cite{1,3-7,9}/\\cite{1,3,4,5,6,7,9}/g 如果您希望vim在更改任何行之前要求确认,请追加c。例如:
:%s/\\cite{1,3-7,9}/\\cite{1,3,4,5,6,7,9}/gc 发布于 2014-08-25 11:22:50
使用我的模式--文本插件,您可以将:substitute命令限制为模式匹配(在您的例子中是\cite{...}):
:%SubstituteInSearch/\\cite{[^}]\+}/\(\d\+\)-\(\d\+\)/\=join(range(submatch(1),submatch(2)), ',')/g正则表达式解析起始数和结束数,并使用join()和range() (使用:help sub-replace-expr )将它们转换为数字范围。
https://unix.stackexchange.com/questions/151907
复制相似问题