Uso msysgit y me gustaría tener gvim como mi editor de git.
Yo uso cygwin bash en lugar de git bash.
Corriendo
$ /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
comienza gvim. Pero si configuro esto como editor git:
$ git config core.editor /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
y ejecutar commit obtengo:
/cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: -c: line 0: syntax error near unexpected token `('
Luego agrego barras invertidas escapadas donde sea necesario:
$ git config core.editor /cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)/Vim/vim73/gvim.exe
Esto todavía me da:
/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'.
La cuestión es que puedo copiar la cadena después de "no se puede ejecutar" y pegarla y se ejecuta. Supongo que podría ser causado por los espacios o los paréntesis en Archivos de programa (x86) (¿qué demonios estaban pensando?).
Como cygwin parece manejarlo bien, pensé que podría crear un enlace simbólico en say / usr / local / bin, ya que está en mi $ PATH y establecí
$ git config core.editor /usr/local/bin/gvim
Confirmo que / usr / local / bin / gvim inicia gvim. Aún así, ejecutar un commit me da:
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'.
Desarmando core.editor e intentando
$ export GIT_EDITOR=/usr/local/bin/gvim.exe
me da el mismo error
Esta respuesta SO sugiere que use un script para abrir el editor.
Elimino el enlace suave gvim.exe de / usr / local / bin y
$ cat > gvim
#!/bin/sh
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
$ chmod u+x gvim
Pruebo ejecutar el script, funciona, comienza gvim.
$ gvim
Desafortunadamente cuando ejecuto commit recibo un error
$ 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'.
¿Qué puedo hacer para usar gVim como editor de git? ¿Alguien lo ha intentado? ¿He cometido errores? Debo admitir que soy un novato cuando se trata de Linux.
which gvim
?Respuestas:
git config parece eliminar un nivel de comillas, así que agrega otro. Esto funciona para mí (con otro editor):
(Tenga en cuenta las comillas escapadas que rodean la ruta, esto hace que el editor se inicie siempre que lo haga, por ejemplo, git commit para ser "c: / Archivos de programa (x86) /Vim/vim73/gvim.exe", por lo que con comillas que le dicen al bash shell que No intente interpretar el () como lo que sea que piense que esto significa).
fuente
Cuando se trabaja con espacios en nombres de ruta, generalmente es una buena idea encapsularlos entre comillas. Esto resolverá su problema:
fuente
Si no hay ruta, no pase ninguna ruta
Si la ruta está vacía, pase la ruta vacía
Si la ruta es relativa, pase como está
Si la ruta es absoluta, conviértala al formato de Windows
Luego establezco estas variables:
EDITOR permite que el script funcione con Git
GIT_EDITOR permite que el script funcione con comandos de Hub
Fuente
fuente