Сканирование порядок системы сборки ядра kbuild / kconfig?

Краткий ответ.

Вы используете % f , но имя файла, которое вы хотите передать, хранится в переменной $ {MC_EXT_FILENAME} .

Длинный ответ.

Как открывать / просматривать файлы PDF с помощью Midnight Commander + Wine + PDF-XChange Viewer / Editor Portable

Примечание: я предполагаю, что переносимые приложения Windows хранятся в "~ / MyApps / *"

  • open Midnight Commander файл расширения для редактирования: F9 -> Команда -> Редактировать файл расширения
  • перейдите к разделу файла, в котором записана конфигурация PDF: {{1 }} type / 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 ИЛИ вставьте их сюда, чтобы я мог помочь (просто замените свое имя пользователя в пути на для безопасности)

  1. Кроме того, это маловероятно, НО, если пути ОДИНАКОВЫЕ, может быть проблема с разрешениями, установленными для файла, который вы пытаетесь открыть. Таким образом убедитесь, что ваши права доступа к файлам как минимум:

     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
  • дважды щелкните папку Мои документы
  • , вы должны увидеть содержимое домашнего каталога Linux ~ / *
1
12.11.2016, 22:01
1 ответ

Вы должны стремиться к тому, чтобы не было зависимостей порядка!

Система запускается с первой строки файла Kconfig верхнего уровня и обрабатывает каждую строку по очереди. Когда он видит «исходную» строку, он приостанавливает чтение текущего файла, обрабатывает указанный файл. Когда он доходит до конца файла, он возвращается с того места, где был в предыдущем файле.

1
27.01.2020, 23:46

Теги

Похожие вопросы