Запустить TexnicCenter из Mingw64, не запуская несколько экземпляров?

Я использую Git с Mingw64 под Windows 10, но я новичок в Git/Linux/bash.

Я хотел бы определить команду texniccenter в интерпретаторе Mingw64, чтобы, если я наберу

texniccenter my_file.tex

my_file.tex откроется в работающем экземпляре TexnicCenter, если он есть, или в новом, если ни один экземпляр не запущен. Основываясь на ответе на команду для открытия файла с помощью git, я создал файл с именем texniccenter со следующим содержимым

#!/bin/sh
"C:\Program Files\TeXnicCenter\TeXnicCenter.exe" "$1" &

и я сохранил его в "C:\Program Files\Git\usr\bin". Это работает нормально, но каждый раз запускает новый экземпляр TexnicCenter. Я читал, что мне нужно использовать параметр командной строки /ddecmd, чтобы запретить TexnicCenter запускать новый экземпляр, но я не уверен, куда его поместить в приведенной выше команде. Я перепробовал много комбинаций кавычек и косых черт/обратных косых черт, чтобы избежать косой черты в /ddecmd, но пока ничего не сработало.

Если это имеет значение, я задаю этот вопрос, потому что хочу настроить Git для использования TexnicCenter для отображения содержимого файла из указанной фиксации. На основе ответа на https://superuser.com/questions/772269/how-can-i-pipe-console-output-directly-to-notepad, я хотел бы ввести

git show a_branch_name:my_file.tex | clip && texniccenter

но я должен сначала определить texniccenter.


person vin0646    schedule 11.12.2020    source источник
comment
Вы должны поставить опцию после TeXnicCenter.exe: "C:\Program Files\TeXnicCenter\TeXnicCenter.exe" /ddecmd "$1".   -  person paq    schedule 11.12.2020
comment
Не уверен, что MinGW поддерживает все функции перенаправления, но вы также можете попробовать вариант оболочки unix: texniccenter.exe /ddecmd <( git show some_branch:some_file ). Он создает временный файл с содержимым, взятым из команды git show, и передает путь к этому файлу команде texniccenter.exe в качестве второго аргумента.   -  person paq    schedule 11.12.2020
comment
Спасибо, но "C:\Program Files\TeXnicCenter\TeXnicCenter.exe" /ddecmd "$1" не работает, потому что TeXnicCenter интерпретирует /ddecmd как имя подпапки и говорит "C:\Program Files\Git\ddecmd" not found. Похоже, его путают с / в опции.   -  person vin0646    schedule 11.12.2020
comment
Я вижу, опции /ddecmd ожидают аргумент: texniccenter.sourceforge.net/commandline.html. Кроме того, убедитесь, что ваша версия TeXnicCenter поддерживает параметр ddecmd.   -  person paq    schedule 11.12.2020
comment
Он поддерживает параметр /ddecmd, потому что если я наберу "C:\Program Files\TeXnicCenter\TeXnicCenter.exe" /ddecmd "[goto('absolute_path_to_my_file.tex', '1')]" (с абсолютным путем в команде — не знаю, почему здесь не работает относительный путь) в Windows cmd, он откроет myfile.tex в работающем экземпляре TC. Не знаю, как передать параметр /ddecmd в bash-файле в стиле Linux...   -  person vin0646    schedule 14.12.2020
comment
Если вам удалось запустить команду с абсолютным путем, у вас больше нет проблем: path="$( readlink -f "$1" )" "C:\Program Files\TeXnicCenter\TeXnicCenter.exe" /ddecmd "[goto('$path', '1')]"   -  person paq    schedule 14.12.2020
comment
/ не обрабатывается каким-либо особым образом в GNU/Linux, и ваш bash-файл просто запустит исполняемый файл Windows с параметрами в стиле Windows, это нормально,   -  person paq    schedule 14.12.2020