Приложение-назначение для VIFM на Windows

Я на Win 10 и хочу избавиться от Windows-Explorer и использовать в основном мою клавиатуру с VIFM. Но у меня проблемы с назначением расширения файла для конкретного приложения. Все, что я хочу открыть, открывается с помощью встроенного vim вместо моих внешних приложений.

Вот пример из моего конфига:

" Pdf
filextype *.pdf
    \ {View in AR}
    \ C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe %f

У меня есть два вопроса прямо сейчас: - Действительно ли в VIFM нет функции "Open-With"? Не могу поверить.... - Как правильно назначить типы файлов в моей win-среде?

Спасибо 4 ваша поддержка!!

1 ответ

Поздний ответ, но решение Xaizek содержит несколько неточностей и не является полным, поскольку можно открыть диалог, если вы готовы прыгнуть через крошечный обруч:

Чтобы открыть файлы PDF по умолчанию с помощью AcroRd32, вы должны добавить следующие строки в свой vifmrc:

filextype *.pdf
    \ {View in AR}
    \ "C:/Program Files (x86)/Adobe/Acrobat Reader DC/Reader/AcroRd32.exe" %"f &,

Обратите внимание на косую черту. Без них команда работать не будет. Также, как правило, неплохо добавить&,в конце любой строки filextype. Это позволит acrord32 открываться в фоновом режиме и не прерывает ваш сеанс vifm; в противном случае вам придется закрыть PDF-файл, чтобы продолжить использование vifm.

Во втором пункте для работы start после него требуются пустые двойные кавычки:

filextype *.pdf
    \ {View in default application}
    \ start "" %"c &,

Альтернативой является использование explorer на месте start "". Стоит отметить, что это позволит вам открывать только один файл за раз, а не пакетное открытие каждого выбранного PDF-файла.

Вы также можете открыть любой файл в конкретной программе через оболочку, например :!gvim %"c &откроет текущий выбранный файл в gvim. Вы также можете заменить%"c с любым именем файла, которое вы хотите в текущем каталоге.

Наконец, вы можете открыть диалог для любого выбранного файла следующим способом:

Создайте файл ow.cmd в каталоге vifm (или в любом другом месте на вашем пути) со следующим содержимым:

Rundll32.exe shell32.dll,OpenAs_RunDLL %~1

Затем добавьте в свой vifmrc следующее:

" Create 'open with' dialogue box for selected file
nnoremap go :!ow.cmd %"c:p &<cr>

Теперь, если ты ударил goвнутри vifm появится диалог "открыть с помощью" для текущего выбранного файла. К сожалению, внешний скрипт необходим для удаления кавычек из имени файла, которые%"c:p прихватывает.

Есть две вещи, которые нужно исправить с помощью команды:

  1. Избегайте пробелов в пути, заключая его в кавычки (vifm проверяет, присутствуют ли программы и, следовательно, должен иметь возможность извлекать путь к исполняемому файлу из командной строки).
  2. Использовать дружественный к Windows макрос %"f вместо %f,

Это даст вам:

" Pdf
filextype *.pdf
    \ {View in AR}
    \ "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" %"f

Который должен работать.

Неужели в vifm нет функции Open-With?

Зависит от того, что вы имеете в виду. Есть :file команда, которая будет отображать список зарегистрированных файловых ассоциаций. Если вы просто хотите пойти с теми, кто зарегистрирован в Windows, то используйте всеобщую ассоциацию filetype * start, Если вы говорите о меню "Открыть с помощью", как в Проводнике, то нет, такой запрос зарегистрированных ассоциаций не выполняется.

Другие вопросы по тегам