Ich benutze msysgit und möchte gvim als meinen git-Editor haben.
Ich benutze Cygwin Bash anstelle von Git Bash.
Laufen
$ /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
startet gvim. Aber wenn ich das als Git-Editor einstelle:
$ git config core.editor /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
und führe Commit aus, das ich bekomme:
/cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: -c: line 0: syntax error near unexpected token `('
Ich füge dann bei Bedarf maskierte Backslashes hinzu:
$ git config core.editor /cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)/Vim/vim73/gvim.exe
Das gibt mir noch:
/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'.
Die Sache ist, ich kann den String von nach "kann nicht laufen" kopieren und einfügen und es läuft. Ich denke, es könnte entweder durch die Leerzeichen oder die Klammern in den Programmdateien (x86) verursacht werden (was um alles in der Welt dachten sie?).
Da Cygwin damit klar zu kommen scheint, dachte ich mir, ich könnte einen Symlink in say / usr / local / bin erstellen, wie er in meinem $ PATH und Set enthalten ist
$ git config core.editor /usr/local/bin/gvim
Ich bestätige, dass / usr / local / bin / gvim gvim startet. Ein Commit führt mich jedoch dazu:
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 deaktivieren und versuchen
$ export GIT_EDITOR=/usr/local/bin/gvim.exe
gibt mir den gleichen Fehler.
Diese SO-Antwort legt nahe, dass ich ein Skript verwende, um den Editor zu öffnen.
Ich entferne den Softlink gvim.exe aus / usr / local / bin und
$ cat > gvim
#!/bin/sh
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
$ chmod u+x gvim
Ich teste das Skript, es funktioniert, gvim startet.
$ gvim
Leider erhalte ich beim Ausführen von Commit eine Fehlermeldung
$ 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'.
Was kann ich tun, um gVim als Git-Editor zu verwenden? Hat es jemand versucht? Habe ich fehler gemacht Ich muss zugeben, ein Anfänger zu sein, wenn es um Linux geht.
which gvim
?Antworten:
git config scheint eine Ebene von Anführungszeichen zu entfernen, also fügen Sie eine weitere hinzu. Das funktioniert bei mir (mit einem anderen Editor):
(Beachten Sie die maskierten Anführungszeichen, die den Pfad umgeben. Dies führt dazu, dass der Editor immer dann gestartet wird, wenn Sie z. B. git commit als "c: / Program Files (x86) /Vim/vim73/gvim.exe" ausführen Versuchen Sie nicht, das () so zu interpretieren, wie es Ihrer Meinung nach bedeutet.)
quelle
Wenn Sie mit Leerzeichen in Pfadnamen arbeiten, ist es im Allgemeinen eine gute Idee, diese in Anführungszeichen zu setzen. Dies wird Ihr Problem lösen:
quelle
Wenn kein Pfad vorhanden ist, übergeben Sie keinen Pfad
Wenn der Pfad leer ist, übergeben Sie den leeren Pfad
Wenn der Pfad relativ ist, übergeben Sie ihn wie er ist
Wenn der Pfad absolut ist, konvertieren Sie ihn in das Windows-Format
Dann setze ich diese Variablen:
Mit EDITOR kann das Skript mit Git arbeiten
Mit GIT_EDITOR kann das Skript mit Hub-Befehlen arbeiten
Quelle
quelle