Я использую 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
.
"C:\Program Files\TeXnicCenter\TeXnicCenter.exe" /ddecmd "$1"
. - person paq   schedule 11.12.2020texniccenter.exe /ddecmd <( git show some_branch:some_file )
. Он создает временный файл с содержимым, взятым из команды git show, и передает путь к этому файлу команде texniccenter.exe в качестве второго аргумента. - person paq   schedule 11.12.2020"C:\Program Files\TeXnicCenter\TeXnicCenter.exe" /ddecmd "$1"
не работает, потому что TeXnicCenter интерпретирует /ddecmd как имя подпапки и говорит"C:\Program Files\Git\ddecmd" not found
. Похоже, его путают с/
в опции. - person vin0646   schedule 11.12.2020/ddecmd
ожидают аргумент: texniccenter.sourceforge.net/commandline.html. Кроме того, убедитесь, что ваша версия TeXnicCenter поддерживает параметр ddecmd. - person paq   schedule 11.12.2020/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.2020path="$( readlink -f "$1" )"
"C:\Program Files\TeXnicCenter\TeXnicCenter.exe" /ddecmd "[goto('$path', '1')]"
- person paq   schedule 14.12.2020/
не обрабатывается каким-либо особым образом в GNU/Linux, и ваш bash-файл просто запустит исполняемый файл Windows с параметрами в стиле Windows, это нормально, - person paq   schedule 14.12.2020