cygwin altında git editörü olarak gVim


8

Msysgit kullanıyorum ve git editörüm olarak gvim'in olmasını istiyorum.

Git bash yerine cygwin bash kullanıyorum.

Koşu

$ /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe 

gvim'i başlatır. Ancak bunu git editörü olarak ayarlarsam:

$ git config core.editor /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe

ve koşma taahhüdüm alıyorum:

/cygdrive/c/Program Files (x86)/Vim/vim73/gvim.exe: -c: line 0: syntax error near unexpected token `('

Sonra gerektiğinde kaçan ters eğik çizgi eklerim:

$ git config core.editor /cygdrive/c/Program\\\ Files\\\ \\\(x86\\\)/Vim/vim73/gvim.exe

Bu hala bana veriyor:

/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'.

Mesele şu ki, "çalıştırılamaz" komutundan sonra dizgiyi kopyalayabilir ve yapıştırabilirim. Sanırım, Program Dosyalarındaki (x86) boşluklardan veya parantezlerden kaynaklanmış olabilir (ne düşünüyordu?).

Cygwin halletmiş gibi gözüktüğü için tamam $ usta'da olduğu gibi / usr / local / bin sayısında bir sembolik bağlantı oluşturabileceğimi düşündüm.

$ git config core.editor /usr/local/bin/gvim

/ Usr / local / bin / gvim'in gvim'i başlattığını onaylıyorum. Yine de, bir taahhüt yürütmek bana verir:

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 ayarını kaldırmak ve denemek

$ export GIT_EDITOR=/usr/local/bin/gvim.exe 

bana da aynı hatayı veriyor.

Bu SO cevap editörü açmak için bir komut dosyası kullanmamı öneririm.

Ben yumuşak bağlantı gvim.exe / usr / local / bin ve

$ cat > gvim
#!/bin/sh
/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe

$ chmod u+x gvim

Senaryoyu çalıştırmayı test ediyorum, işe yarıyor, gvim başlıyor.

$ gvim

Maalesef kaçtığım zaman taahhütte hata alıyorum

$ 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'i git editörü olarak kullanmak için ne yapabilirim? Deneyen var mı? Hata yaptım mı? Linux olduğunda acemi olduğumu itiraf etmeliyim.


Bunun yerine cygwin vi'yı kullanmayı denediniz mi? Komutu denedin mi which gvim?
Somantra

hangi gvim / usr / local / bin / gvim çıktılar, sadece yumuşak link veya script varsa. Muhtemelen gVim isteme sebebimi daha net belirtmeliyim. Her gün kullanıyorum ve istediğim gibi kurdum. Başka bir tane kullanırsam, korumak için iki editör ayarım olacaktır.
johnny

Rc dosyalarınız için sembolik bağlantılar veya repo kullanmayı düşünebilirsiniz.
Somantra

Bunu bir cygwin kabuk betiği yerine bir toplu iş dosyası ile yapmanız gerekebilir. Ayrıca, Windows tabanlı gVim ve ne cgywin'in $ HOME olarak ayarlayacağını HOME çevresel değişkenindeki çelişkilere dikkat edin.
Heptite

@Heptite Ben de bunun için bir yarasa dosyası oluşturmaya çalıştım. Şanssız. Sorumla belirtilen yumurtlama hatasını alıyorum. Ve çatışmalar konusunda haklısın. Gvim ile değil çatışmalarla gittim. git config - cygwin altında global, cygwin evine, msysgit altında da pencere evine kaydeder.
johnny

Yanıtlar:


6

git config bir seviye tırnak seviyesini kaldırıyor gibi görünüyor, bu yüzden başka bir tane ekleyin. Bu benim için çalışıyor (başka bir editörle):

git config core.editor "\" c: / Program Dosyaları (x86) /Vim/vim73/gvim.exe \ ""

(Yolu çevreleyen kaçan tırnaklara dikkat edin, bu editörün örneğin git git "c: / Program Files (x86) /Vim/vim73/gvim.exe" olmasını sağladığında başlamasına neden olur, böylece bash kabuğuna () bunun ne anlama geldiğini düşündüğü gibi yorumlamaya çalışmayın.)


0

Pathnamesindeki boşluklarla çalışırken, genellikle bunları tırnak işaretleri içine almak iyi bir fikirdir. Bu sorununu çözecektir:

git config core.editor "/cygdrive/c/Program\ Files\ \(x86\)/Vim/vim73/gvim.exe"

Ne yazık ki değil. / cygdrive / c / Program \ Dosyalar \ (x86) /Vim/vim73/gvim.exe: / cygdrive / c / Program Dosyaları (x86) /Vim/vim73/gvim.exe: Böyle bir dosya veya dizin hatası yok: çalıştırılamıyor / cygdrive / c / Program \ Files \ (x86) /Vim/vim73/gvim.exe: Böyle bir dosya ya da dizin hatası yok: '/ cygdrive / c / Program \ Files \ (x86) / Vim / editörü ile ilgili bir sorun oluştu vim73 / gvim.exe'. Yol yine de doğru, / cygdrive / c / Program \ Files \ (x86) /Vim/vim73/gvim.exe
johnny

Üzgünüm, cygwin ile denedim ama cygwin-git paketini kullandım. Bana Cygwin ve Msysgit'i nasıl bağladığınızı söyler misiniz?
p.vitzliputzli

Msysgit'i kurdum ve git bash'i uzun süre kullandım. Tam olarak neden cygwin'i kullanmaya başladığımı hatırlamıyorum, fakat yaptığım şey, Git yolunu (/ cygdrive / c / Program Files (x86) / Git / bin) cygwin $ PATH'e eklemek.
johnny

0
#!/bin/dash -e
if [ "${1#/}" != "$1" ]
then k=$(cygpath -w "$1")
elif [ "$#" != 0 ]
then k=$1
fi
exec gvim ${k+"$k"}
  1. Yol yoksa, yol yok

  2. Yol boşsa, boş yoldan geç

  3. Yol göreceli ise, olduğu gibi geçin

  4. Yol mutlaksa, Windows biçimine dönüştürün

Sonra bu değişkenleri ayarlarım:

export EDITOR=gvim.sh
export GIT_EDITOR='dash /usr/local/bin/gvim.sh'
  1. EDITOR komut dosyasının Git ile çalışmasına izin veriyor

  2. GIT_EDITOR betiğin çalışmasına izin verir Hub komutları

Kaynak

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.