如何在vim下使用外部PDF阅读器在光标下打开pdf文件(使用’gf’)
当前的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.使用 这样,您可以使用转义序列获得更可读的结果: au BufEnter *.pdf exe "normal! &;c-o>" 无论如何,这不是最合适的命令. c为C-O>只是跳到了 au BufEnter *.pdf bdelete 代替.我还有另一个解决方案. 用地图创建另一个命令,比如说gO.然后使用您的PDF阅读器 :nnoremap gO :!open <cfile><CR> 这个< cfile>将被扩展到光标下的文件.所以,如果你想 如果您没有此命令或更喜欢仅使用PDF的解决方案,请创建一个地图 :nnoremap gO :!FoxitReader <cfile> &<CR> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |