Eu uso o msysgit e gostaria de ter o gvim como meu editor de git.
Eu uso o cygwin bash em vez do git bash.
Corrida
$ /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
inicia o gvim. Mas se eu definir isso como editor git:
$ git config core.editor /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
e execute commit, recebo:
/cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: -c: line 0: syntax error near unexpected token `('
Em seguida, adiciono barras invertidas quando necessário:
$ git config core.editor /cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)/Vim/vim73/gvim.exe
Isso ainda me dá:
/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'.
O problema é que eu posso copiar a sequência depois de "não pode ser executada" e colá-la e ela é executada. Eu acho que isso pode ser causado pelos espaços ou parênteses nos Arquivos de Programas (x86) (o que eles estavam pensando?).
Como o cygwin parece lidar bem, achei que poderia criar um link simbólico em / usr / local / bin, como está no meu $ PATH e defina
$ git config core.editor /usr/local/bin/gvim
Confirmo que / usr / local / bin / gvim inicia o gvim. Ainda assim, executar um commit me dá:
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'.
Desativando core.editor e tentando
$ export GIT_EDITOR=/usr/local/bin/gvim.exe
me dá o mesmo erro.
Esta resposta do SO sugere que eu use um script para abrir o editor.
Eu removo o link flexível gvim.exe de / usr / local / bin e
$ cat > gvim
#!/bin/sh
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
$ chmod u+x gvim
Eu testo o script, ele funciona, o gvim inicia.
$ gvim
Infelizmente, quando executo commit, recebo um erro
$ 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'.
O que posso fazer para usar o gVim como editor de git? Alguém já tentou? Eu cometi erros? Devo admitir ser um novato no que diz respeito ao Linux.
which gvim
?Respostas:
O git config parece remover um nível de aspas, então adicione outro. Isso funciona para mim (com outro editor):
(Observe as aspas vazias ao redor do caminho, isso faz com que o editor seja iniciado sempre que você fizer, por exemplo, git commit como "c: / Arquivos de Programas (x86) /Vim/vim73/gvim.exe", portanto, com aspas que digam ao shell bash para Não tente interpretar o () como ele pensa que isso significa.)
fonte
Ao trabalhar com espaços em nomes de caminho, geralmente é uma boa idéia encapsulá-los entre aspas. Isto irá resolver o seu problema:
fonte
Se não houver caminho, não passe nenhum caminho
Se o caminho estiver vazio, passe o caminho vazio
Se o caminho for relativo, passe como está
Se o caminho for absoluto, converta para o formato Windows
Então eu defino estas variáveis:
EDITOR permite que o script funcione com o Git
GIT_EDITOR permite que o script funcione com os comandos do Hub
Fonte
fonte