Приложение-назначение для 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
прихватывает.
Есть две вещи, которые нужно исправить с помощью команды:
- Избегайте пробелов в пути, заключая его в кавычки (vifm проверяет, присутствуют ли программы и, следовательно, должен иметь возможность извлекать путь к исполняемому файлу из командной строки).
- Использовать дружественный к 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
, Если вы говорите о меню "Открыть с помощью", как в Проводнике, то нет, такой запрос зарегистрированных ассоциаций не выполняется.