在VIM中转换和还原endnote {author,#XXXX}的引用?

时间:2012-11-20 18:01:44

标签: vim plugins

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

  

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

我希望vim将其转换为:

  

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

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

  
    

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

  

2 个答案:

答案 0 :(得分:1)

转换为:

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

转换回来:

:%s/\\cite{latexref\(\d\+\)}/{,#\1}/g

答案 1 :(得分: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>