如何使用autocmd将PDF文件转换为TXT文件?
当我在VIM选项卡中拖动PDF文件时,我想使用pdftotext将其转换为TXT文件。我已在磁盘上安装了pdftotext 为此,我在vimrc中添加了以下命令:如何使用autocmd将PDF文件转换为TXT文件?,pdf,vim,pdftotext,Pdf,Vim,Pdftotext,当我在VIM选项卡中拖动PDF文件时,我想使用pdftotext将其转换为TXT文件。我已在磁盘上安装了pdftotext 为此,我在vimrc中添加了以下命令: autocmd BufReadPost *.pdf silent %!pdftotext -layout -q -eol unix "%" 在vim 7.4中,它运行良好。它以TXT格式打开了PDF文件。 现在在vim 8.1中,它并没有像预期的那样工作。它转换PDF并在同一个PDF目录中的我的磁盘上创建TXT文件,而不打开它 我想
autocmd BufReadPost *.pdf silent %!pdftotext -layout -q -eol unix "%"
在vim 7.4中,它运行良好。它以TXT格式打开了PDF文件。
现在在vim 8.1中,它并没有像预期的那样工作。它转换PDF并在同一个PDF目录中的我的磁盘上创建TXT文件,而不打开它
我想要的是在相同的目录D:\temp中创建TXT文件,关闭PDF文件并打开TXT文件
我试过了,但没有成功:
autocmd BufReadPost *.pdf silent %!pdftotext -layout -q -eol unix "%" | :let myfile = "D:\\temp\\".expand("%:r").".txt" | :bd | :exe "tabe ".myfile
错误:文件名、目录名或卷标语法不正确
我如何在D:\temp中创建TXT文件,关闭PDF并在新选项卡中打开创建的TXT文件?我认为,更合理的做法是简单地替换缓冲区内容
let g:Pdf2Txt = 'pdftotext -layout -q -eol unix %:p:S -'
augroup Pdf2Txt | au!
autocmd BufReadCmd *.pdf execute expandcmd('silent read ++edit !'..g:Pdf2Txt)
autocmd BufReadCmd *.pdf 1delete_
autocmd BufReadCmd *.pdf setfiletype text
autocmd BufReadCmd *.pdf setlocal buftype=nowrite
augroup end
在我看来,简单地替换缓冲区内容更有意义
let g:Pdf2Txt = 'pdftotext -layout -q -eol unix %:p:S -'
augroup Pdf2Txt | au!
autocmd BufReadCmd *.pdf execute expandcmd('silent read ++edit !'..g:Pdf2Txt)
autocmd BufReadCmd *.pdf 1delete_
autocmd BufReadCmd *.pdf setfiletype text
autocmd BufReadCmd *.pdf setlocal buftype=nowrite
augroup end
它转换PDF并在我的磁盘上创建TXT文件
这不是维姆的错,是pdftotext的错。很长一段时间以来,人们一直在这样做。您需要通过添加-这意味着输出文件是stdout来强制它写入stdout:
autocmd BufReadPost *.pdf silent %!pdftotext -layout -q -eol unix "%" -
它转换PDF并在我的磁盘上创建TXT文件
这不是维姆的错,是pdftotext的错。很长一段时间以来,人们一直在这样做。您需要通过添加-这意味着输出文件是stdout来强制它写入stdout:
autocmd BufReadPost *.pdf silent %!pdftotext -layout -q -eol unix "%" -
对非常感谢你!对非常感谢你!