Cập nhật 2010-2011:
Giải pháp của zumalifeguard (được nâng cấp) đơn giản hơn so với giải pháp ban đầu, vì nó không cần thêm một tập lệnh trình bao bọc.
Như tôi đã giải thích trong " Làm cách nào tôi có thể thiết lập trình chỉnh sửa để hoạt động với Git trên Windows? ", Tôi thích trình bao bọc hơn, vì sẽ dễ dàng hơn để thử và chuyển đổi trình chỉnh sửa hoặc thay đổi đường dẫn của một trình chỉnh sửa mà không phải đăng ký thay đổi. với một git config
lần nữa .
Nhưng đó là tôi.
Thông tin bổ sung : giải pháp sau đây hoạt động với Cygwin , trong khi giải pháp của zuamlifeguard thì không.
Câu trả lời gốc.
Sau đây là
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 "$*"
làm việc. Các lệnh này được hiểu là shell script, do đó, ý tưởng bao bọc bất kỳ cửa sổ nào của các lệnh trong một sh
kịch bản.
(Như Franky nhận xét : "Hãy nhớ lưu .sh
tệp của bạn bằng các kết thúc dòng kiểu Unix hoặc nhận thông báo lỗi bí ẩn!")
Chi tiết khác về câu hỏi SO Làm cách nào tôi có thể thiết lập trình chỉnh sửa để hoạt động với Git trên Windows?
Lưu ý -multiInst
tùy chọn '', để đảm bảo phiên bản notepad ++ mới cho mỗi cuộc gọi từ Git.
Cũng lưu ý rằng, nếu bạn đang sử dụng Git trên Cygwin (và muốn sử dụng Notepad ++ từ Cygwin ), thì scphantm giải thích trong " sử dụng Notepad ++ cho Git bên trong Cygwin " mà bạn phải biết rằng:
git
đang vượt qua nó một cygwin
con đường và npp
không biết phải làm gì với nó
Vì vậy, kịch bản trong trường hợp đó sẽ là:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$(cygpath -w "$*")"
Nhiều dòng cho dễ đọc:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -notabbar \
-nosession -noPlugin "$(cygpath -w "$*")"
Với "$(cygpath -w "$*")"
việc là phần quan trọng ở đây.
Val đã nhận xét (và sau đó xóa) rằng bạn không nên sử dụng -notabbar
tùy chọn:
Việc vô hiệu hóa tab trong quá trình rebase là không tốt, nhưng sẽ gây hại rất nhiều cho khả năng sử dụng Notepad chung vì nó -notab
trở thành cài đặt mặc định và bạn phải Settings>Preferences>General>TabBar> Hide>uncheck
mỗi khi bạn khởi động notepad sau khi rebase. Đây là địa ngục. Bạn đề nghị địa ngục.
Vì vậy, sử dụng thay vì:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession -noPlugin "$(cygpath -w "$*")"
Đó là:
#!/bin/sh
"C:/Program Files (x86)/Notepad++/notepad++.exe" -multiInst -nosession \
-noPlugin "$(cygpath -w "$*")"
Nếu bạn muốn đặt tập lệnh ' npp.sh
' trong một đường dẫn có khoảng trắng (như trong ' c:\program files\...
',), bạn có ba tùy chọn:
Cố gắng trích dẫn đường dẫn (dấu ngoặc đơn hoặc dấu ngoặc kép), như trong:
git config --global core.editor 'C:/program files/git/npp.sh'
hoặc thử ký hiệu tên ngắn (không bị đánh lừa):
git config --global core.editor C:/progra~1/git/npp.sh
hoặc (yêu thích của tôi) đặt ' npp.sh
' trong một phần thư mục của %PATH%
biến môi trường của bạn . Sau đó, bạn sẽ không chỉ định bất kỳ đường dẫn nào cho tập lệnh.
git config --global core.editor npp.sh
Steiny báo cáo trong các ý kiến phải làm:
git config --global core.editor '"C:/Program Files (x86)/Git/scripts/npp.sh"'