【发布时间】:2016-09-15 14:04:20
【问题描述】:
如何在vim 的资源管理器中预览图像(:Explore 命令)?解决方案之一是使用光标下的文件名作为参数执行特定命令,但我不知道如何获取它。我通过:Explore 的帮助进行了搜索,但找不到任何可以提供帮助的东西。我知道我可以在其他文件管理器中执行此操作,但我希望在 vim 中使用此功能。
【问题讨论】:
标签: vim file-manager
如何在vim 的资源管理器中预览图像(:Explore 命令)?解决方案之一是使用光标下的文件名作为参数执行特定命令,但我不知道如何获取它。我通过:Explore 的帮助进行了搜索,但找不到任何可以提供帮助的东西。我知道我可以在其他文件管理器中执行此操作,但我希望在 vim 中使用此功能。
【问题讨论】:
标签: vim file-manager
netrw 插件(提供:Explore 命令)有一个内置预览(cp.:help netrw-preview),它使用 Vim 的预览窗口。但是当然,大多数图像文件都是二进制的,所以在 Vim 中打开它可能没有意义;您可能想在外部图像查看器中打开它(例如 eog)。
这是为预览提供动力的映射(在资源管理器缓冲区中):
:nmap <buffer> p
n p *@:<C-U>call <SNR>731_NetrwPreview(<SNR>731_NetrwBrowseChgDir(1,<SNR>731_NetrwGetWord(),1))<CR>
内部 (<SNR>731_NetrwBrowseChgDir(1,<SNR>731_NetrwGetWord(),1)) 产生当前文件的完整路径。您可以使用它来启动外部查看器:
:call system('eog ' . shellescape(<SNR>731_NetrwBrowseChgDir(1,<SNR>731_NetrwGetWord(),1)))
不幸的是,这些 netrw 函数是脚本本地的(<SNR>731 部分可能在您的系统上有所不同),因此您必须直接修改 netrw 插件以添加“外部图像预览”快捷方式,也是因为该映射不是全局映射,而是由插件专门为其资源管理器缓冲区设置的。如果您决定遵循这条路线,我可以为您提供更多详细信息。也可以在不修改插件的情况下扩展插件,但这需要更多的工作。
【讨论】: