Я использую msysgit и хотел бы, чтобы gvim был моим редактором git.
Я использую Cygwin Bash вместо Git Bash.
Бег
$ /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
начинает гвим. Но если я установлю это как редактор git:
$ git config core.editor /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
и запустить коммит я получаю:
/cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: -c: line 0: syntax error near unexpected token `('
Затем я добавляю экранированные обратные слеши, где это необходимо:
$ git config core.editor /cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)/Vim/vim73/gvim.exe
Это все еще дает мне:
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe: /cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: No such file or directory
error: cannot run /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe: No such file or directory
error: There was a problem with the editor '/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe'.
Дело в том, что я могу скопировать строку после «не могу запустить» и вставить ее, и она запускается. Я думаю, это может быть вызвано пробелами или круглыми скобками в Program Files (x86) (о чем они вообще думали?).
Так как cygwin, кажется, справляется с этим, я решил создать символическую ссылку, скажем, в / usr / local / bin, как в моем $ PATH, и установить
$ git config core.editor /usr/local/bin/gvim
Я подтверждаю, что / usr / local / bin / gvim запускает gvim. Тем не менее, выполнение коммита дает мне:
error: cannot spawn /usr/local/bin/gvim.exe: No such file or directory
error: There was a problem with the editor '/usr/local/bin/gvim.exe'.
Отключение core.editor и попытки
$ export GIT_EDITOR=/usr/local/bin/gvim.exe
дает мне ту же ошибку.
Этот SO ответ предполагает, что я использую скрипт для открытия редактора.
Я удаляю программную ссылку gvim.exe из / usr / local / bin и
$ cat > gvim
#!/bin/sh
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
$ chmod u+x gvim
Я тестирую, запускаю скрипт, он работает, gvim запускается.
$ gvim
К сожалению, когда я запускаю коммит, я получаю ошибку
$ git commit
error: cannot spawn /usr/local/bin/gvim: No such file or directory
error: There was a problem with the editor '/usr/local/bin/gvim'.
Что я могу сделать, чтобы использовать gVim в качестве редактора git? Кто-нибудь пробовал это? Я сделал ошибки? Я должен признать, что был новичком, когда дело доходит до Linux.
which gvim
?Ответы:
git config, кажется, удаляет один уровень кавычек, поэтому добавьте другой. Это работает для меня (с другим редактором):
(Обратите внимание на экранированные кавычки, окружающие путь, это приводит к тому, что редактор запускается всякий раз, когда вы делаете, например, git commit будет «c: / Program Files (x86) /Vim/vim73/gvim.exe», то есть с кавычками, которые сообщают оболочке bash: не пытайтесь интерпретировать () как бы то ни было.)
источник
При работе с пробелами в путевых именах, как правило, рекомендуется заключать их в кавычки. Это решит вашу проблему:
источник
Если нет пути, не передайте путь
Если путь пуст, пропустите пустой путь
Если путь относительный, передайте как есть
Если путь абсолютный, конвертировать в формат Windows
Затем я установил эти переменные:
РЕДАКТОР позволяет скрипту работать с Git
GIT_EDITOR позволяет скрипту работать с командами Hub
Источник
источник