首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用正则表达式查找并更改vim中的某些LaTeX编码?

使用正则表达式查找并更改vim中的某些LaTeX编码?
EN

Unix & Linux用户
提问于 2014-08-24 13:50:00
回答 2查看 286关注 0票数 1

如何更改以下LaTeX编码:

代码语言:javascript
复制
\cite{1,3-7,9} 

代码语言:javascript
复制
\cite{1,3,4,5,6,7,9}  

在维姆?我更喜欢使用正则表达式。

EN

回答 2

Unix & Linux用户

发布于 2014-08-24 17:43:54

您可以使用vim的substitute命令来完成这一任务:

代码语言:javascript
复制
:%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}

若要仅替换当前行中存在的事件,可以使用:

代码语言:javascript
复制
:s/\\cite{1,3-7,9}/\\cite{1,3,4,5,6,7,9}/g 

如果您希望vim在更改任何行之前要求确认,请追加c。例如:

代码语言:javascript
复制
:%s/\\cite{1,3-7,9}/\\cite{1,3,4,5,6,7,9}/gc  
票数 3
EN

Unix & Linux用户

发布于 2014-08-25 11:22:50

使用我的模式--文本插件,您可以将:substitute命令限制为模式匹配(在您的例子中是\cite{...}):

代码语言:javascript
复制
:%SubstituteInSearch/\\cite{[^}]\+}/\(\d\+\)-\(\d\+\)/\=join(range(submatch(1),submatch(2)), ',')/g

正则表达式解析起始数和结束数,并使用join()range() (使用:help sub-replace-expr )将它们转换为数字范围。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/151907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档