如何使用 mc 中的 wine 应用程序打开文件?

如何使用 mc 中的 wine 应用程序打开文件?

我想使用 PDF-XChange Editor 从 .pdf 文件中打开 pdf 文件mc。我尝试设置

Open=wine ~/PDFXEdit6_Portable/PDFXEdit.exe %f

mc.ext,但它仅打开应用程序,而不打开文件。


[编辑]

在我看来,这个字段的语法与文件exec中的语法很接近.desktop,所以我尝试调整上提出的一些解决方案如何将文件作为参数传递到 wine 应用程序的 .desktop 文件中,但还没有成功。

答案1

对我来说,解决方案是添加z:在命令行末尾附近:

打开=wine ~/PDFXEdit6_Portable/PDFXEdit.exe:%f
                                            ↑↑

我在快捷方式中使用 PDF X-Change Editor 进行了测试,它也有效:

env WINEPREFIX="/home/jim/.wine" wine-stable C:\\windows\\command\\start.exe /Unix /home/jim/.wine/dosdevices/c:/users/jim/Start\ Menu/Programs/Tracker\ Software/PDF-XChange\ Editor.lnk z:%f

答案2

简短的回答。

您正在使用%f,但您要传递的文件名存储在${MC_EXT_FILENAME}变量中。

长答案。

如何使用 Midnight Commander + Wine + PDF-XChange Viewer / Editor Portable 打开/查看 PDF 文件

注意:我假设 Windows 便携式应用程序存储在“~/MyApps/*”中

  • 打开 Midnight Commanderextension file进行编辑:F9 -> 命令 -> 编辑扩展文件
  • 导航到写入 PDF 配置的文件部分:键入/pdfEnter
  • 注释掉以下几行(仅用于备份):

    # PDF
    #type/^PDF
    #       Open=/usr/lib/mc/ext.d/doc.sh open pdf
    #       View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view pdf
    

  • 添加/替换为以下行:

    # PDF
    type/^PDF
        Open=~/MyApps/start-pdf-mc.sh
        View=%view{ascii} ~/MyApps/start-pdf-mc.sh
    

  • 保存更改并退出: :wqEnter

  • 创建~/MyApps/start-pdf-mc.sh包含以下内容的文件:

    #!/bin/bash
    Filename="z:"${MC_EXT_FILENAME//\//\\}
    App=`eval wine "~/MyApps/PDF-XChange_Viewer/PDFXCview.exe" "'$Filename'" > /dev/null 2>&1 &`
    $App
    

注意:您可能想在中创建它/usr/lib/mc/ext.d/*.sh(而不是~/MyApps/像我那样)。

  • 确保start-pdf-mc.sh文件可执行(使用chmod)。

start-pdf-mc.sh 文件的说明

  • 我们尝试打开的文件名存储在${MC_EXT_FILENAME} 变量中

  • 使用wine时,使用驱动器盘符z:

  • 使用以下命令将 Linux 样式文件路径 ( /) 转换为 Windows 样式 ( ):稍后将其作为参数传递给 PDF-XChange Viewer\${MC_EXT_FILENAME//\//\\}

  • > /dev/null 2>&1&需要丢弃程序输出并将其作为后台进程运行,否则(如果省略此操作),您将无法使用 Midnight Commander,直到关闭 PDF-XChange Viewer,这显然是不可取的。

使用以下软件测试

  • Linux Debian 32 位

  • GNU 午夜指挥官 4.8.13

  • 葡萄酒-1.6.2

  • PDF-XChange 查看器 v2.5.316.1

  • Linux Debian 32 位

  • GNU 午夜指挥官 4.8.13

  • 葡萄酒-1.6.2

  • PDF-XChange 编辑器 v6.0.321.0

根据您的评论更新

看来文件路径中仍然存在一些错误...让我们尝试更正它。

    • 使用 PDFXChange Editor 打开有问题的 PDF 文件(像平常一样,而不是使用 Midnight Commander)

    • 文件 -> 复制完整文件名

    • 将其粘贴到任何文本文件中(仅供以后参考)

    • 关闭 PDFXChange 编辑器

    • 使用 Midnight Commander + PDFXChange Editor 打开同一文件(显示错误消息)

    • 比较文件路径是否相同(您刚刚粘贴以供参考的路径和错误消息中的路径)

    • 如果路径不相同 - 在 .sh 文件中相应地更正路径或将它们粘贴到此处以供我帮助(只需将路径中的用户名替换为 ,以<username>确保安全)

  1. 此外,这种情况不太可能发生,但如果路径相同,则您尝试打开的文件上设置的权限可能存在问题。因此验证您的文件权限至少是:

    sudo chmod 644 your-file-name-here.pdf
    

更新2

可以访问所有驱动器中的所有文件,包括那些不在~/*(主用户目录)中的文件,甚至仅通过使用(根本Z:\不使用其他驱动器号)存储在其他硬盘上的文件。H:\

检查 Wine 中的驱动器映射:

  • 在终端中运行

    $ winecfg
    
  • 打开Drives选项卡

  • 默认情况下必须有以下记录

    Letter | Drive Mapping
    C:     | ../drive_c
    Z:     | /
    

据我所知,任何路径以(对于在 Linux 中访问的任何 HDD 上的任何文件)开头,因此由于上述映射,/可以使用 , 进行访问。Z:\

例如,上面的配置允许我访问 PDF 文件

  • 来自/home/<username>/*.pdf( ~/*.pdf),如果它位于主用户目录中
  • 来自/media/<drive-label>/*.pdfOR /mnt/<drive-label>/*.pdf,如果它位于我已安装的某个外部驱动器或 HDD 上; (H:\例如,在 Windows 中,可以使用 访问同一驱动器)

然而,驱动器映射将是另一个问题,具体取决于您的设置。 :-)

顺便提一句,还有一件事要检查。您的用户主目录是否~/*映射到wineMy Documents文件夹?

  • 在终端中:$ wine explorer
  • 双击My Documents文件夹
  • ~/*你应该看到 Linux主目录的内容

相关内容