我正在编写一个小的 vim 领导者映射来将(GitHub 风格的降价)中的文件转换为 pdf。
这两种方法都有效,并且在功能上似乎是等效的:
nnoremap <expr> <leader>pdf ':! pandoc -f markdown_github --latex-engine=xelatex ' . shellescape(@%,1). ' -o ' . shellescape(expand('%:r'), 1) . ".pdf \<cr>"
nnoremap <expr> <leader>pdf ':! pandoc -f markdown_github --latex-engine=xelatex ' . shellescape(expand('%'),1). ' -o ' . shellescape(expand('%:r'), 1) . ".pdf \<cr>"
我有第一个工作(感谢 Stack Overflow ;)但我并没有真正理解@%
第一个 shellescape 中的。所以我把它换成了expand('%')
我“得到”更多的东西。
任何人都可以解释其中的区别,甚至可以去哪里查找?我确实读过:help :@
,但它谈到了Execute the contents of register as an ex command
,这似乎不是这里发生的事情。
任何帮助/指针都会很棒!