Vim pdf 查看器阻塞终端

Vim pdf 查看器阻塞终端

当我在 Vim 上调用命令command ViewPdf !okular %:r.pdf(在 .vimrc 中)时,终端被阻止,我无法继续编写文档。我该如何调整此 vim 命令以打开我的 pdfviewer 并让我在 vim 中编写文本?我已经尝试过此选项:

command ViewPdf !okular %:r.pdf &
command ViewPdf !okular %:r.pdf & disown
command ViewPdf !okular %:r.pdf && disown

[编辑-1]:我不想使用插件来做到这一点。我的机器很烂,所以如果可能的话,我想避免在运行时添加东西

[编辑-2]: 我的.vimrc 文件:

   command ViewPdf execute "!okular %:r.pdf &" | redraw  
   command CompileXelatex !xelatex  -interaction=nonstopmode %
   command CompileLatex !latexmk -pdfxe %
   

答案1

诀窍是让读者默默地进入后台并在 VIM 中重新绘制:

:command ViewPdf execute "silent !okular %:r.pdf&" | redraw!

这样使用时execute只有感叹号后的引号中的内容才会传递给 shell,并由| redraw!VIM 进行解释。

可能redraw并不总是必要的(我实际上不确定什么时候才是必要的),所以

:command ViewPdf silent !okular %:r.pdf&

也可能有效。

或者,您也可以使用映射来解决这个问题,例如,

:nmap <leader>s :silent ! okular %:r.pdf&<cr> :redraw!<cr>

<leader>s这将定义在正常模式下为您打开 okular的组合键。使用存储在(默认情况下为反斜杠,例如,您可以使用逗号代替)<leader>中的键。mapleader:let mapleader = ","

相关内容