2

我在转换具有以下内容的文档时遇到问题:

这位作者 {john, #99} 说 ... ... bla bla 另一个作者提到 {barlic, #1508} ...

我希望 vim 将其转换为:

这个作者 \cite{latexref99} 说... ... bla bla 这个其他作者提到 \cite{latexref1508} ...

知道该怎么做吗?还有如何恢复到:

这位作者 {,#99} 说 ... ... bla bla 这个其他作者提到 {, #1508} ..

4

2 回答 2

1

转换成:

:%s/{[^#]*#\(\d\+\)}/\\cite{latexref\1}/g

转换回来:

:%s/\\cite{latexref\(\d\+\)}/{,#\1}/g
于 2012-11-20T21:11:32.460 回答
0

您不需要可以使用 sed 的插件:

sed -e 's/{[^}]*\#\([0-9]*\)}/\\cite\{latexref\1\}/g' < file.tex >new_ref.tex

您也可以将其映射到 vim 中的快捷方式

nmap n :%w ! cat % \| sed -e 's/{[^}]*\#\([0-9]*\)}/\\cite\{latexref\1\}/g' > % <CR>
于 2012-11-20T18:28:45.140 回答