Pembaruan 2010-2011:
zumalifeguard 's solusi (upvoted) lebih sederhana daripada yang asli, karena tidak perlu lagi shell pembungkus naskah.
Seperti yang saya jelaskan di " Bagaimana saya bisa mengatur editor untuk bekerja dengan Git di Windows? ", Saya lebih suka pembungkus, karena lebih mudah untuk mencoba dan beralih editor, atau mengubah jalur satu editor, tanpa harus mendaftar perubahan kata dengan git config
lagi .
Tapi itu hanya aku.
Informasi tambahan : solusi berikut ini bekerja dengan Cygwin , sedangkan solusi zuamlifeguard tidak.
Jawaban asli.
Pengikut:
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 "$*"
tidak bekerja. Perintah-perintah itu ditafsirkan sebagai skrip shell, maka ide untuk membungkus setiap set windows perintah dalam sh
skrip.
(Seperti komentar Franky : "Ingatlah untuk menyimpan file Anda dengan ujung garis gaya Unix atau menerima pesan kesalahan yang misterius!").sh
Lebih detail tentang pertanyaan SO Bagaimana saya bisa mengatur editor untuk bekerja dengan Git di Windows?
Perhatikan opsi ' -multiInst
', untuk memastikan instance baru notepad ++ untuk setiap panggilan dari Git.
Perhatikan juga bahwa, jika Anda menggunakan Git di Cygwin (dan ingin menggunakan Notepad ++ dari Cygwin ), maka scphantm menjelaskan dalam " menggunakan Notepad ++ untuk Git di dalam Cygwin " bahwa Anda harus menyadari bahwa:
git
melewatinya cygwin
jalan dan npp
tidak tahu apa yang harus dilakukan dengan itu
Jadi skrip dalam kasus itu adalah:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Beberapa baris untuk keterbacaan:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Dengan "$(cygpath -w "$*")"
menjadi bagian penting di sini.
Val berkomentar (dan kemudian dihapus) bahwa Anda tidak boleh menggunakan -notabbar
opsi:
Tidak ada gunanya menonaktifkan tab selama rebase, tetapi membuat banyak kerugian bagi kegunaan Notepad umum karena -notab
menjadi pengaturan default dan Anda harus Settings>Preferences>General>TabBar> Hide>uncheck
setiap kali Anda memulai notepad setelah rebase. Ini adalah neraka. Anda merekomendasikan neraka.
Jadi gunakan agak:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Itu adalah:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Jika Anda ingin menempatkan skrip ' npp.sh
' di jalur dengan spasi (seperti pada ' c:\program files\...
',), Anda memiliki tiga opsi:
Cobalah untuk mengutip lintasan (kutipan tunggal atau ganda), seperti pada:
git config --global core.editor 'C:/program files/git/npp.sh'
atau coba notasi shortname (tidak terbukti bodoh):
git config --global core.editor C:/progra~1/git/npp.sh
atau (favorit saya) tempat ' npp.sh
' di bagian direktori %PATH%
variabel lingkungan Anda . Anda tidak perlu menentukan jalur apa pun untuk skrip.
git config --global core.editor npp.sh
Steiny melaporkan komentar yang harus dilakukan:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'