Краткий ответ.
Вы используете % f
, но имя файла, которое вы хотите передать, хранится в переменной $ {MC_EXT_FILENAME}
.
Длинный ответ.
Как открывать / просматривать файлы PDF с помощью Midnight Commander + Wine + PDF-XChange Viewer / Editor Portable
Примечание: я предполагаю, что переносимые приложения Windows хранятся в "~ / MyApps / *"
файл расширения
для редактирования: F9
-> Команда -> Редактировать файл расширения pdf
Введите закомментируйте следующие строки (только для резервной копии):
# 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 {{ 1}}
добавьте / замените следующие строки:
# PDF
type / ^ PDF
Open = ~ / MyApps / start-pdf-mc.sh {{1} } View =% view {ascii} ~ / MyApps / start-pdf-mc.sh
сохраните изменения и выйдите: : w q Введите
, чтобы создать файл ~ / MyApps / start-pdf-mc.sh
со следующим содержанием:
#! / Bin / bash
Filename = "z : "$ {MC_EXT_FILENAME // \ // \\} {{ 1}} App = `eval wine" ~ / MyApps / PDF-XChange_Viewer / PDFXCview.exe "" '$ Filename' "> / dev / null 2> & 1 &` {1}} $ App
Примечание: вы можете создать его в / usr / lib / mc / ext.d / *. sh
(вместо ~ / MyApps /
, как я).
start-pdf-mc.sh
исполняемый файл (используйте chmod
). Описание файла start-pdf-mc.sh
имя файла, которое мы пытаемся открыть, хранится в $ {MC_EXT_FILENAME}
{ {1}} переменная
при использовании Wine, используйте букву диска z:
преобразовать путь к файлу в стиле Linux ( /
) в стиль Windows ( \
) со следующим
: $ {MC_EXT_FILENAME // \ // \\}
, чтобы передать его в качестве аргумента в
PDF-XChange Viewer позже
> / dev / null 2> & 1
и &
необходимы для отбрасывания вывода программы и запуска ее в качестве фонового процесса, в противном случае (если вы опустите это) вы не сможете использовать Midnight Commander до тех пор, пока вы закрываете PDF-XChange Viewer,
что явно нежелательно.
Teste d со следующим программным обеспечением
Linux Debian 32-бит
GNU Midnight Commander 4.8.13
wine-1.6.2
PDF-XChange Viewer v2.5.316.1
И
Linux Debian 32-бит
GNU Midnight Commander 4.8.13
wine-1.6.2
PDF-XChange Editor v6.0.321.0
Обновление в соответствии с вашим комментарием
Похоже, что все еще есть какая-то ошибка в пути к файлу ... Попробуем исправить.
Откройте проблемный PDF-файл с помощью PDFXChange Editor (как вы обычно это делаете, НЕ с Midnight Commander)
Файл -> Копировать полное имя файла
Вставьте его в любой текстовый файл (только для дальнейшего использования)
Закройте редактор PDFXChange
Откройте тот же файл с помощью Midnight Commander + PDFXChange Editor (который показывает ваше сообщение об ошибке)
Сравните, идентичны ли пути к файлам (тот, который вы только что вставили для справки и тот, который указан в вашем сообщении об ошибке)
Если пути НЕ идентичны - исправьте путь соответственно в файле .sh ИЛИ вставьте их сюда, чтобы я мог помочь (просто замените свое имя пользователя в пути на
для безопасности)
Кроме того, это маловероятно, НО, если пути ОДИНАКОВЫЕ, может быть проблема с разрешениями, установленными для файла, который вы пытаетесь открыть. Таким образом убедитесь, что ваши права доступа к файлам как минимум:
sudo chmod 644 your-file-name-here.pdf
Update 2
Возможно получить доступ ко всем файлам со всех дисков, включая те, которые НЕ находятся в ~ / *
(домашний каталог пользователя) или даже хранятся на других жестких дисках, просто используя Z: \
(не используя H: \
] и другие буквы дисков).
Проверьте отображение дисков в Wine:
запустите в терминале
$ winecfg
откройте вкладку Диски
, там должны быть следующие записи по умолчанию
Письмо | Сопоставление дисков
C: | ../ drive_c
Z: | /
Насколько мне известно, любой путь начинается с /
(для любого файла на любом жестком диске, доступном в Linux) и, таким образом, к нему можно получить доступ с помощью Z: \
из-за отображения, описанного выше.
Например, приведенная выше конфигурация позволяет мне получить доступ к файлу PDF
/ home / /*.pdf
( ~ / *. Pdf
), если он находится в домашнем
каталоге пользователя / media / /*.pdf
OR / mnt / /*.pdf
, если он находится на каком-то внешнем диске или жестком диске, который я смонтировал; (например, в Windows к тому же диску можно получить доступ, используя H: \
)Сопоставление дисков, однако, будет другим вопросом, связанным с вашей настройкой. : -)
Кстати, еще одна вещь, которую нужно проверить . Сопоставляется ли домашний каталог пользователя ~ / *
с папкой MyDocuments
MyDocuments
wine
?
$ wine explorer
Мои документы
~ / *
Вы должны стремиться к тому, чтобы не было зависимостей порядка!
Система запускается с первой строки файла Kconfig верхнего уровня и обрабатывает каждую строку по очереди. Когда он видит «исходную» строку, он приостанавливает чтение текущего файла, обрабатывает указанный файл. Когда он доходит до конца файла, он возвращается с того места, где был в предыдущем файле.