Saya menggunakan msysgit dan saya ingin memiliki gvim sebagai editor git saya.
Saya menggunakan cygwin bash, bukan git bash.
Lari
$ /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
mulai gvim. Tetapi jika saya mengatur ini sebagai editor git:
$ git config core.editor /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
dan jalankan commit saya dapatkan:
/cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: -c: line 0: syntax error near unexpected token `('
Saya kemudian menambahkan backslash lolos jika diperlukan:
$ git config core.editor /cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)/Vim/vim73/gvim.exe
Ini masih memberi saya:
/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'.
Masalahnya adalah, saya bisa menyalin string dari setelah "tidak bisa berjalan" dan tempel dan jalankan. Saya kira itu bisa disebabkan oleh spasi atau tanda kurung di Program Files (x86) (apa yang mereka pikirkan?).
Karena cygwin tampaknya menanganinya ok saya pikir saya bisa membuat symlink di say / usr / local / bin, seperti di $ PATH saya dan set
$ git config core.editor /usr/local/bin/gvim
Saya mengkonfirmasi bahwa / usr / local / bin / gvim memulai gvim. Namun, menjalankan komit memberi saya:
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'.
Menghapus pengaturan core.editor dan mencoba
$ export GIT_EDITOR=/usr/local/bin/gvim.exe
memberi saya kesalahan yang sama.
Jawaban SO ini menyarankan agar saya menggunakan skrip untuk membuka editor.
Saya menghapus tautan lunak gvim.exe dari / usr / local / bin dan
$ cat > gvim
#!/bin/sh
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe
$ chmod u+x gvim
Saya menguji menjalankan skrip, itu berfungsi, gvim dimulai.
$ gvim
Sayangnya ketika saya menjalankan komit, saya mendapatkan kesalahan
$ 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'.
Apa yang bisa saya lakukan untuk menggunakan gVim sebagai editor git? Adakah yang sudah mencobanya? Sudahkah saya melakukan kesalahan? Saya harus mengaku sebagai pemula ketika datang ke linux.
which gvim
?Jawaban:
git config tampaknya menghapus satu tingkat kutipan, jadi tambahkan yang lain. Ini berfungsi untuk saya (dengan editor lain):
(Catat tanda kutip yang diloloskan di sekitar jalan, ini menyebabkan editor memulai setiap kali Anda melakukan mis git commit menjadi "c: / Program Files (x86) /Vim/vim73/gvim.exe", jadi dengan kutipan yang memberi tahu bash shell untuk tidak mencoba menafsirkan () sebagai apa pun yang menurutnya artinya.)
sumber
Saat bekerja dengan spasi di nama path, umumnya merupakan ide bagus untuk merangkumnya dalam tanda kutip. Ini akan menyelesaikan masalah Anda:
sumber
Jika tidak ada jalur, tidak ada jalur
Jika jalur kosong, lewati jalur kosong
Jika path relatif, lewat apa adanya
Jika path absolut, konversikan ke format Windows
Lalu saya mengatur variabel-variabel ini:
EDITOR memungkinkan skrip bekerja dengan Git
GIT_EDITOR memungkinkan skrip bekerja dengan perintah Hub
Sumber
sumber