1

У меня есть пакетный файл Windows, который я использую для редактирования файлов с помощью Notepad++

@echo off

if [%1] == [] (

    C:\PROG\Notepad++Portable\Notepad++Portable.exe

) else (

    C:\PROG\Notepad++Portable\Notepad++Portable.exe %CD%\%1

)

Это прекрасно работает, и я пытаюсь сделать то же самое для gVim (версия Vim для Linux).

@echo off

if [%1] == [] (

    C:\"Program Files (x86)"\Vim\vim74\gvim.exe

) else (

    C:\"Program Files (x86)"\Vim\vim74\gvim.exe %CD%\%1

)

Но та часть, где я нуждаюсь в этом для редактирования / создания документа в качестве аргумента, похоже, не работает для gVim.

Он отлично работает для Notepad++

C:\PROG\Notepad++Portable\Notepad++Portable.exe \directory\name\editFile.txt

Потом когда попробую в gVim

Он отлично работает для Notepad++

C:\"Program Files (x86)"\Vim\vim74\gvim.exe \directory\name\editFile.txt

Он открывается без подтверждения аргумента.

2 ответа2

1

Я не очень хорошо знаком со сценариями пакетных файлов и с тем, как интерпретатор команд Windows обрабатывает пробелы, но я обнаружил, что заключение всего пути команды в двойные кавычки мне помогло, когда я создавал пакетный файл для расширения ItsAllText для Firefox:

"C:\Program Files (x86)\Vim\vim74\gvim.exe" "%1"
0

Что-то, что я только что понял, это то, что только Graphical Vim не позволяет мне редактировать файлы через командную строку (gvim.exe)

Однако стандартный Vim, кажется, работает идеально (vim.exe). Я обновил свой пакетный скрипт Windows, чтобы использовать его, и он работает нормально

@echo off

if [%1] == [] (

    C:\"Program Files (x86)"\Vim\vim74\vim.exe

) else (

    C:\"Program Files (x86)"\Vim\vim74\vim.exe %CD%\%1

)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .