Notepad ++ (veya başka bir dosyayı) msysgit ile nasıl kullanabilirim?


210

Msysgit ile Notepad ++ (veya vim dışında başka bir düzenleyici) nasıl kullanabilirim?

Aşağıdakilerin hepsini boşuna denedim:

git config --global core.editor C:\Program Files\Notepad++\notepad++.exe

git config --global core.editor "C:\Program Files\Notepad++\notepad++.exe"

git config --global core.editor C:/Program Files/Notepad++/notepad++.exe

git config --global core.editor C:\\Program Files\\Notepad++\\notepad++.exe

1
Hata mesajı var mı? EDITOR ortam değişkenini ayarlamayı denediniz mi?
csl

4
Buradan bakmayı deneyin: stackoverflow.com/questions/10564/…
JasonTrue

Komut dosyasının yolu hakkında, istendiği gibi boşluklar da dahil olmak üzere bazı bilgiler ekledim.
VonC

Yanıtlar:


76

2010-2011 Güncellemesi:

zumalifeguard 'in çözeltisi artık komut sargı, bir kabuk gerekmez olarak (upvoted), orijinal bir çok daha basittir.

" Windows'ta Git ile çalışmak için bir düzenleyici nasıl ayarlayabilirim? " Bölümünde açıkladığım gibi, söz konusu değişikliği kaydetmek zorunda kalmadan editörleri denemek ve değiştirmek veya bir düzenleyicinin yolunu değiştirmek daha kolay olduğu için bir sarmalayıcıyı tercih ederim. bir git configtekrar .
Ama bu sadece benim.


Ek bilgi : zuamlifeguard'ın çözümü işe yaramazken aşağıdaki çözüm Cygwin ile birlikte çalışır .


Orijinal cevap.

Devamındaki:

C:\prog\git>git config --global core.editor C:/prog/git/npp.sh

C:/prog/git/npp.sh:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"

çalışır. Bu komutlar kabuk komut dosyası olarak yorumlanır, bu nedenle komut dosyalarındaki herhangi bir Windows komut kümesini kaydırma fikri sh.
(As Franky yorumlar : "Lütfen kaydetmeyi unutmayın .shUnix tarzı satır sonları dosya veya gizemli hata iletileri alabilirsiniz!")

SO sorusu hakkında daha fazla ayrıntı Windows'ta Git ile çalışacak bir düzenleyici nasıl ayarlayabilirim?

-multiInstGit'ten gelen her çağrı için yeni bir notepad ++ örneği sağlamak için ' ' seçeneğine dikkat edin.

Üzerinde Git kullanıyorsanız Not ayrıca, Cygwin (ve istediğiniz Cygwin gelen Notepad ++ kullanmak ), sonra scphantm "olarak açıklar Cygwin içine Git için Notepad ++ kullanarak bunu farkında olması gerektiğini":

gitbir cygwinyoldan geçiyor ve onunla nppne yapacağını bilmiyor

Bu durumda senaryo şöyle olur:

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"

Okunabilirlik için birden fazla satır:

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
  -nosession -noPlugin "$(cygpath -w "$*")"

İle "$(cygpath -w "$*")"Burada önemli parçası olmak.

Val seçeneği kullanmamanız gerektiğini yorumladı (ve sonra sildi) -notabbar:

Rebase sırasında sekmeyi devre dışı bırakmak iyi değildir, ancak -notabvarsayılan Not haline geldiğinden genel Not Defteri kullanılabilirliğine çok zarar verir ve Settings>Preferences>General>TabBar> Hide>uncheckrebase'den sonra not defterini her başlattığınızda yapmanız gerekir . Bu cehennem. Cehennemi tavsiye ettin.

Bu yüzden şunu kullanın:

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"

Yani:

#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
  -noPlugin "$(cygpath -w "$*")"

' npp.sh' Komut dosyasını boşluklu bir yola yerleştirmek istiyorsanız (' c:\program files\...' gibi), üç seçeneğiniz vardır:

  • Ya yolu (tek veya çift tırnak) belirtmeye çalışın.

    git config --global core.editor 'C:/program files/git/npp.sh'
  • veya kısa ad gösterimini deneyin (aptal değil):

    git config --global core.editor C:/progra~1/git/npp.sh
  • veya (benim favorim) ' npp.sh' seçeneğini %PATH%ortam değişkeninizin bir dizin bölümüne yerleştirin . Bu durumda komut dosyası için herhangi bir yol belirtmeniz gerekmez.

    git config --global core.editor npp.sh
  • Steiny raporlar yorumlarda yapmak zorunda:

    git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'

Bunu sürücümün köküne npp.sh (yani - C: /npp.sh) yerleştirerek işe aldım. İçinde boşluk olan bir klasörü hedeflemeye çalıştığımda (yani - D: / Program Files (x86) /Git/npp.sh) başarısız oluyor, boşluklardan kaçmanın ve / veya çalışmasını sağlamanın doğru yolu nedir?
PHLAK

tırnak içine alın. Örneğindeki her şeyin etrafında nasıl alıntılar olduğunu görüyor musunuz?
Fred

2
Zumalifeguard'ın yanıtı benim için çalıştı. Kabuk betiği sarmalayıcısı gerektirmez.
wbinford

1
@wbinford: Ben zumalifeguard'ın cevabına bir link ekledim (ki ben iptal ettim) ve doğrudan komut yerine bir sarıcı kaydetmeyi tercih etme nedenim.
VonC

1
Yukarıdakilerin birden fazla kombinasyonunu denedim ve hiçbiri git ile çalışmıyor. benim yolumda benim npp komut dosyası var ve benim cygwin konsolundan yazın, "npp {dosya}" npp dosyayı gayet iyi açar, ama bir "git rebase -i" npp yerine boş bir dosya ile açılır birleştirme dosyası. bunun neden olacağına dair herhangi bir fikir var mı?
scphantm

433
git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Veya 64 bit Windows ve 32 bit Notepad ++ yüklemesi için:

git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

Veya 32-bit veya 64-bit Windows'ta komut satırına aşağıdakiler verilebilir. Notepad ++. Exe dosyasının konumunu kayıt defterinden çeker ve git'i otomatik olarak kullanmak üzere yapılandırır:

FOR /F "usebackq tokens=2*" %A IN (`REG QUERY "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\notepad++.exe" /ve`) DO git config --global core.editor "'%B' -multiInst -notabbar -nosession -noPlugin"

Yukarıdakini bir .BAT veya .CMD dosyasından yerleştirmek isterseniz,% A yerine %% A ve% B yerine %% B eklemelisiniz


9
git uzantılarında da çalışır. 64bit pencereler için girişin"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin
Tim Abell

15
Aptalca bir şey, -notabbar'ın sekme çubuğunu yalnızca bu oturum için değil kalıcı olarak devre dışı bırakmasıdır. Notepad ++ normalde başlatıldığında, ayarlar iletişim kutusuna gitmeniz ve sekme çubuğunu tekrar etkinleştirmeniz gerekir.
Oskar Berggren

4
Kullanmak zorundaydım: git config --global core.editor "c\:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe -multiInst -nosession -noPlugin" ... neden olduğundan emin değilim.
David Faivre

1
Windows 7 64-bit, msysgit v1.9.2 ve Notepad ++ v6.6.9 var ve bu MÜKEMMEL çalıştı . Teşekkürler.
Radu Murzea

2
@CoDEmanX Olmadan -multiInstmuhtemelen zaten çalışan Not Defteri ++ sinyal dosyayı açmak ve hemen çıkmak için. Düzenleyiciyi çağıran herhangi bir şey yalnızca düzenleme yapıldığında geri dönmesini beklerse (yani vi çağrısında olduğu gibi senkron bir işlem) bu büyük bir sorun olabilir. git rebase -iÖrneğin, etkileşimli bir rebase ( ) deneyin . Bu hala beklendiği gibi çalışıyorsa sorun yok.
blubberdiblub

7

Bu benim için çalışıyor

git config --global core.editor C:/Progra~1/Notepad++/notepad++.exe

Ben de aynı şeyi yaptım .. şimdi nasıl notepad ++ mesaj ile taahhüt açmak için ?? Commad nedir ?? lütfen bir örnek verebilir misiniz
shridutt kothari

4
-multiInstSeçeneği eklemek, diğer cevaplardaki gibi burada çok önemlidir.
blubberdiblub

1
Bu iki nedenden dolayı iyi değil. İlk olarak, C: birimi NTFS ise 8.3 dosya adı seçeneği kapalıysa, hiç yoktur C:\Progra~1. İkincisi, birden çok C:\Progra*dizin olabilir , bu nedenle ~1sonek mutlaka geçerli değildir.
kkm

5
git config core.editor "\"C:\Program Files (x86)\Notepad++\notepad++.exe\""

Bu benim için hile yaptı! Daha sonra .gitconfig şöyle görünür: [core] editor = \ "c: \\ Program Dosyaları (x86) \\ Notepad ++ \\ notepad ++. Exe \" -multiInst -nosession -noPlugin
AtliB 29:05

Bunu içeren en yüksek oyu alan cevabı görün (yeterince
okumadım


3

Bu yaklaşımı PATH değişkeni ile kullanıyorum. Notepad ++ yolu sistemin PATH değişkenine eklenir ve core.editor aşağıdaki gibi ayarlanır:

git config --global core.editor notepad++

Ayrıca, Notepad ++ için bazı ek parametreler ekleyebilirsiniz:

git config --global core.editor "notepad++.exe -multiInst"

(" Windows için Gitcore.editor " bölümünde ayrıntılı olarak açıkladığım gibi )

Burada Notepad ++ Komut Satırı Seçeneklerini belirtirken kullanabileceğiniz bazı seçenekler bulabilirsiniz .


1

GÜNCELLEME 2015

Notepad ++ paketini c:\utils\npp\açar / yüklerseniz ve basitlik için notepad ++. Exe'yi npp.exe'ye yeniden adlandırırsanız, tek yapmanız gereken

git config --global core.editor c:/utils/npp/npp.exe

Sarıcı komut dosyaları veya başka hile yok. PATH içinde Notepad ++ kullanmaya gerek yok.


Güncelleme 2020: yeni not defteri örneği açma seçeneklerini kaçırdığınız görülüyor. Ben cmd.exe kullandım git config --global core.editor "c:\\soft\\notepad++\\notepad++.exe -multiInst -notabbar -nosession -noPlugin"ve her ikisi de çalışıyor cmd terminalvegit bash
oleksa

1

Windows 10 ve notepad ++ kullanıyorum ve bu hata mesajını alıyordum:

line 0: syntax error near unexpected token `(' git windows

Bu yüzden kurulumu bu şekilde yapıyorum:

git config --global core.editor 'C:/Program\ Files\ \(x86\)/Notepad++/notepad++.exe'

ve çalışıyor


0

Bu talimatları izleyin,

  1. Öncelikle sisteminizde notepad ++ kurulu olduğundan ve .txt dosyalarını açmanın varsayılan program olduğundan emin olun .

  2. Ardından gitpad'i sisteminize kurun . İndirme bağlantısının son kontrol edildiğini unutmayın, bu yüzden açıklandığı gibi buradan indirin .

Sonra taahhütte favori metin editörü açılır görmelisiniz.


0

Starikovs'un çözümünü kullandım. Bir bash penceresiyle başladım ve komutları verdim

cd ~
touch .bashrc

Sonra Windows Gezgini'nde .bashrc dosyasını buldum, notepad ++ ile açtım ve ekledim

PATH=$PATH:"C:\Program Files (x86)\Notepad++"

böylece bash Notepad ++ 'ı nerede bulacağını bilir. (Bash PATH'de Notepad ++ olması kendi başına yararlı bir şeydir!) Sonra çizgisini yapıştırdım

git config --global core.editor "notepad++.exe -multiInst"

bir bash penceresine. Git deposu için komutla bir şeyler sınamak üzere yeni bir bash penceresi başlattım

git rebase -i HEAD~10

ve dosya umulduğu gibi Notepad ++ ile açıldı.


0

İşte Cygwin ile bir çözüm:

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

  2. Yol boşsa, boş yolu iletin

  3. Yol boş değilse, Windows biçimine dönüştürün.

Sonra bu değişkenleri ayarladım:

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

  2. GIT_EDITOR, komut dosyasının Hub komutlarıyla çalışmasına izin verir

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.