我在转换具有以下内容的文档时遇到问题:
这位作者 {john, #99} 说 ... ... bla bla 另一个作者提到 {barlic, #1508} ...
我希望 vim 将其转换为:
这个作者 \cite{latexref99} 说... ... bla bla 这个其他作者提到 \cite{latexref1508} ...
知道该怎么做吗?还有如何恢复到:
这位作者 {,#99} 说 ... ... bla bla 这个其他作者提到 {, #1508} ..
转换成:
:%s/{[^#]*#\(\d\+\)}/\\cite{latexref\1}/g
转换回来:
:%s/\\cite{latexref\(\d\+\)}/{,#\1}/g
您不需要可以使用 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>