gpt4 book ai didi

vim - 如何在vim中使用外部PDF阅读器在光标下打开pdf文件(使用 'gf')

转载 作者:行者123 更新时间:2023-12-04 16:46:48 25 4
gpt4 key购买 nike

当前的 gf 命令将打开 *.pdf 文件作为 ascii 文本。我希望使用外部工具(如 okular、foxitreader 等)打开 pdf 文件。我尝试使用 autocmd 来实现它,如下所示:

au BufReadCmd *.pdf silent !FoxitReader % & "open file under cursor with FoxitReader
au BufEnter *.pdf <Ctrl-O> "since we do not really open the file, go back to the previous buffer

但是,第二个 autocmd 未能按预期工作。我想不出执行 <Ctrl-o> 的方法 autocmd 中的命令道路。

任何人都可以给我一个提示如何 <Ctrl-O>autocmd ,或者只是直接建议用 gf 打开 pdf 文件的更好方法?

谢谢。

最佳答案

那是因为后面是 autocmd是一个 ex 命令(开头的那些
带冒号)。要模拟正常模式命令的执行,请使用
:normal 命令。问题是你不能通过 <C-O> (并不是<Ctrl-O> ) 直接发送至 :normal , 它将被视为文字字符 (<,
然后是 C,然后是 r) 这不是一个非常有意义的正常命令。你有两个
选项:

1.插入文字^O字符

使用 controlvcontrolo 得到一个:

au BufEnter *.pdf normal! ^O

2.使用 :execute 建立你的命令

通过这种方式,您可以使用转义序列获得更具可读性的结果:
au BufEnter *.pdf exe "normal! \<c-o>"

无论如何,这不是最合适的命令。 <C-O>只是跳到
跳转列表中的前一个位置,因此您的缓冲区保持打开状态。我会做
就像是:
au BufEnter *.pdf bdelete

反而。我仍然为您提供另一种解决方案。

使用 map 创建另一个命令,比如 go。然后使用您的 PDF 阅读器
直接,或像 open 这样的实用程序如果您使用的是 MacOS X 或 Darwin(不确定是否
其他 Unix 系统有它,以及它是如何调用的)。就像双击一样
作为参数传递的文件图标,因此它将打开您的默认 PDF 阅读器
或任何其他配置为默认打开任何文件的应用程序,如图像或
所以。
:nnoremap gO :!open <cfile><CR>

<cfile>将扩展到光标下的文件。所以如果你想
在 Vim 中打开文件,使用 gf。如果你想用默认打开它
应用程序,使用go。

如果您没有此命令或更喜欢纯 PDF 解决方案,请创建一个 map 以
您的首选命令:
:nnoremap gO :!FoxitReader <cfile> &<CR>

关于vim - 如何在vim中使用外部PDF阅读器在光标下打开pdf文件(使用 'gf'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7810845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com