我使用%
寄存器来编译当前.tex
文件,使用pdflatex
. 我将此映射到ww
,文件首先保存然后编译的位置。
map :ww :w <CR> :!pdflatex % <CR>
这工作正常。现在我尝试复制%
到另一个寄存器,然后使用新寄存器创建类似的映射,但这不起作用。
let @a=@%
map :ww :w <CR> :!pdflatex a <CR>
编译时,我收到以下错误消息:
! I can't find file `a'.
<*> a
但是,当我使用 来检查寄存器时a
,echo @a
寄存器已正确创建。所以我不明白为什么这不起作用。请帮忙。
PS我的最终目标是创建一个条件映射:
if % contains 'chapter':
map :ww :w <CR> :!pdflatex ../main.tex <CR>
else
map :ww :w <CR> :!pdflatex % <CR>
这样vim就可以处理目录结构:
.
├── chapter1
│ ├── chapter1.tex
├── chapter2
│ ├── chapter2.tex
├── chapter3
│ ├── chapter3.tex
├── main.tex