如何使用 mc 的 wine 應用程序打開文件?
我想使用 PDF-XChange Editor 從
mc
. 我試過設置Open=wine ~/PDFXEdit6_Portable/PDFXEdit.exe %f
在
mc.ext
,但它只打開應用程序,而不是文件。$$ edit $$
exec
在我看來,該欄位的語法與in files的語法接近.desktop
,因此我嘗試調整有關How to pass file as argument in .desktop file for wine application 中提出的一些解決方案,但尚未成功。
對我來說,解決方案是**
z:
**在命令行末尾附近添加:打開=酒 ~/PDFXEdit6_Portable/PDFXEdit.exe **z:%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
簡短的回答。
您正在使用
%f
,但您要傳遞的文件名儲存在${MC_EXT_FILENAME}
變數中。長答案。
如何使用 Midnight Commander + Wine + PDF-XChange Viewer / Editor Portable 打開/查看 PDF 文件
注意:我假設 Windows 攜帶式應用程序儲存在“~/MyApps/*”中
- 打開 Midnight Commander
extension file
進行編輯:F9
-> 命令 -> 編輯擴展文件- 導航到寫入 PDF 配置的文件部分:鍵入
/``pdf``Enter
- 註釋掉以下幾行(僅作為備份):
# 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
- 保存更改並退出:
:``w``q``Enter
- 創建
~/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 樣式的 (\
):${MC_EXT_FILENAME//\//\\}
稍後將其作為參數傳遞給 PDF-XChange Viewer> /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 Editor v6.0.321.0
根據您的評論更新
文件路徑中似乎仍然存在一些錯誤……讓我們嘗試更正它。
- 使用 PDFXChange 編輯器打開有問題的 PDF 文件(如您通常所做的那樣,而不是使用 Midnight Commander)
- 文件 -> 複製完整文件名
- 將其粘貼到任何文本文件中(僅供以後參考)
- 關閉 PDFXChange 編輯器
- 使用 Midnight Commander + PDFXChange Editor 打開同一個文件(顯示您的錯誤消息)
- 比較文件路徑是否相同(您剛剛粘貼以供參考的路徑和錯誤消息中的路徑)
- 如果路徑不相同 - 在 .sh 文件中相應地更正路徑或將它們粘貼到此處以供我幫助(只需將路徑中的使用者名替換
<username>
為安全)
- 此外,這不太可能,但如果路徑相同,則在您嘗試打開的文件上設置的權限可能存在問題。因此驗證您的文件權限至少是:
sudo chmod 644 your-file-name-here.pdf
更新 2
可以訪問所有驅動器中的所有文件,包括那些不位於
~/*
(主使用者目錄)中的文件,甚至僅通過使用Z:\
(根本不使用H:\
和其他驅動器號)儲存在其他 HDD 上的文件。在 Wine 中檢查您的驅動器映射:
- 在終端執行
$ winecfg
- 打開
Drives
標籤- 預設情況下必須存在以下記錄
Letter | Drive Mapping C: | ../drive_c Z: | /
據我所知,任何路徑都以
/
(對於在 Linux 中訪問的任何 HDD 上的任何文件)開頭,因此可以使用Z:\
,因為上述映射。例如,上面的配置允許我訪問 PDF 文件
- from
/home/<username>/*.pdf
(- 來自
/media/<drive-label>/*.pdf
OR/mnt/<drive-label>/*.pdf
,如果它位於我已安裝的某個外部驅動器或 HDD 上;(例如,在 Windows 中,可以使用 訪問同一驅動器H:\
)但是,驅動器映射將是另一個問題,具體取決於您的設置。:-)
順便說一句,還有一件事要檢查。您的使用者主目錄是否
~/*
映射到wine
’sMy Documents
文件夾?
- 在終端:
$ wine explorer
- 點兩下
My Documents
文件夾- 你應該看到你的 Linux
~/*
主目錄的內容