Vim 是一个文本编辑器,因此它只能编辑文本。因此,是的,您可以在二进制级别上编辑 PDF,但是您无法查看 PDF 的内容,因为它们应该显示。您可以使用xpdf
包先将 PDF 转换为文本,然后再查看,但结果并不完美。然而,有一些有用的自动命令允许您在 vim 中“打开”非文本文件时使用默认程序打开它们。我用这些:
augroup nonvim
au!
au BufRead *.png,*.jpg,*.pdf,*.gif,*.xls* sil exe "!open " . shellescape(expand("%:p")) | bd | let &ft=&ft
au BufRead *.ppt*,*.doc*,*.rtf let g:output_pdf = shellescape(expand("%:r") . ".pdf")
au BufRead *.ppt*,*.doc*,*.rtf sil exe "!/usr/local/bin/any2pdf " . shellescape(expand("%:p"))
au BufRead *.ppt*,*.doc*,*.rtf sil exe "!open " . g:output_pdf | bd | let &ft=&ft
augroup end
代替!open
您可以使用!xdg-open
如果您使用的是 Linux 发行版。这any2pdf
命令有一个我使用的脚本 http://connermcd.com/blog/2011/12/07/convert-anything-to-pdf-from-the-shell/在打开这些文件之前将其转换为 PDF。如果您只想使用默认程序打开所有内容,则可以编辑此内容。例如,
augroup nonvim
au!
au BufRead *.png,*.jpg,*.pdf,*.gif,*.xls*,*.ppt*,*.doc*,*.rtf sil exe "!open " . shellescape(expand("%:p")) | bd | let &ft=&ft
augroup end
您可能还想研究窗口管理器,例如dwm http://dwm.suckless.org/ or 老鼠药 http://ratpoison.nongnu.org/,这非常接近您的要求。