Cập nhật tháng 9 năm 2015 (6 năm sau)
Bản phát hành cuối cùng của git-for-Windows (2.5.3) hiện bao gồm:
Bằng cách định cấu hình git config core.editor notepad
, giờ đâynotepad.exe
người dùng có thể sử dụng làm trình chỉnh sửa mặc định .
Việc định cấu hình git config format.commitMessageColumns 72
sẽ được chọn bởi trình bao bọc notepad và ngắt dòng thông báo cam kết sau khi người dùng chỉnh sửa nó.
Xem cam kết 69b301b của Johannes Schindelin ( dscho
) .
Và Git 2.16 (Q1 2018) sẽ hiển thị một thông báo cho người dùng biết rằng họ đang đợi người dùng hoàn tất chỉnh sửa khi sinh ra một trình soạn thảo, trong trường hợp trình soạn thảo mở ra một cửa sổ ẩn hoặc một nơi nào đó bị che khuất và người dùng bị mất.
Xem cam kết abfb04d (07 tháng 12 năm 2017) và cam kết a64f213 (29 tháng 11 năm 2017) của Lars Schneider ( larsxschneider
) .
Giúp đỡ: Junio C Hamano ( gitster
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết 0c69a13 , ngày 19 tháng 12 năm 2017)
launch_editor()
: chỉ ra rằng Git chờ đợi đầu vào của người dùng
Khi đồ họa GIT_EDITOR
được sinh ra bởi lệnh Git mở và đợi đầu vào của người dùng (ví dụ: " git rebase -i
"), thì cửa sổ soạn thảo có thể bị che khuất bởi các cửa sổ khác.
Người dùng có thể bị nhìn chằm chằm vào cửa sổ thiết bị đầu cuối Git ban đầu mà không nhận ra rằng họ cần phải tương tác với một cửa sổ khác trước khi Git có thể tiến hành. Để người dùng này Git xuất hiện treo.
In một thông báo rằng Git đang đợi đầu vào của trình soạn thảo trong thiết bị đầu cuối ban đầu và loại bỏ nó khi trình soạn thảo trở lại, nếu thiết bị đầu cuối hỗ trợ xóa dòng cuối cùng
Câu trả lời gốc
Tôi vừa thử nghiệm nó với phiên bản git 1.6.2.msysgit.0.186.gf7512 và Notepad ++ 5.3.1
Tôi không muốn phải đặt biến EDITOR, vì vậy tôi đã thử:
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\""
# or
git config --global core.editor "\"c:\Program Files\Notepad++\notepad++.exe\" %*"
Điều đó luôn mang lại:
C:\prog\git>git config --global --edit
"c:\Program Files\Notepad++\notepad++.exe" %*: c:\Program Files\Notepad++\notepad++.exe: command not found
error: There was a problem with the editor '"c:\Program Files\Notepad++\notepad++.exe" %*'.
Nếu tôi xác định một npp.bat bao gồm:
"c:\Program Files\Notepad++\notepad++.exe" %*
và tôi gõ:
C:\prog\git>git config --global core.editor C:\prog\git\npp.bat
Nó chỉ hoạt động từ phiên DOS, nhưng không phải từ vỏ git .
(không phải với cơ chế cấu hình core.editor, một tập lệnh có " start /WAIT...
" trong đó sẽ không hoạt động, mà chỉ mở một cửa sổ DOS mới)
Câu trả lời của Bennett đề cập đến khả năng tránh thêm một tập lệnh, nhưng để tham chiếu trực tiếp chính chương trình giữa các trích dẫn đơn giản . Lưu ý hướng của dấu gạch chéo! Sử dụng /
KHÔNG \
để phân tách các thư mục trong tên đường dẫn!
git config --global core.editor \
"'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Hoặc nếu bạn đang ở trong hệ thống 64 bit:
git config --global core.editor \
"'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Nhưng tôi thích sử dụng một tập lệnh (xem bên dưới): theo cách đó tôi có thể chơi với các đường dẫn khác nhau hoặc các tùy chọn khác nhau mà không phải đăng ký lại a git config
.
Giải pháp thực tế (có tập lệnh) là nhận ra rằng:
những gì bạn đề cập đến trong tệp cấu hình thực sự là /bin/sh
tập lệnh shell ( ) , không phải tập lệnh DOS.
Vì vậy, những gì làm việc là:
C:\prog\git>git config --global core.editor C:/prog/git/npp.bat
với C:/prog/git/npp.bat
:
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst "$*"
hoặc là
#!/bin/sh
"c:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"
Với cài đặt đó, tôi có thể thực hiện ' git config --global --edit
' từ DOS hoặc Git Shell hoặc tôi có thể làm ' git rebase -i ...
' từ DOS hoặc Git Shell.
Các lệnh Bot sẽ kích hoạt một phiên bản mới của notepad ++ (do đó là -multiInst
tùy chọn ') và đợi cho trường hợp đó được đóng trước khi tiếp tục.
Lưu ý rằng tôi chỉ sử dụng '/', không phải \
'. Và tôi đã cài đặt msysgit bằng tùy chọn 2. (Thêm git\bin
thư mục vào PATH
biến môi trường, nhưng không ghi đè một số công cụ windows tích hợp)
Thực tế là trình bao bọc notepad ++ được gọi là .bat không quan trọng.
Sẽ tốt hơn nếu đặt tên nó là 'npp.sh' và đặt nó trong [git]\cmd
thư mục mặc dù (hoặc trong bất kỳ thư mục nào được tham chiếu bởi biến môi trường PATH của bạn).
Xem thêm:
lightfire228 thêm vào trong các ý kiến :
Đối với bất kỳ ai gặp sự cố trong đó N ++ chỉ mở một tệp trống và git không nhận thông điệp cam kết của bạn, hãy xem " Hủy bỏ cam kết do tin nhắn trống ": thay đổi tệp .bat
hoặc .sh
tệp của bạn để nói:
"<path-to-n++" .git/COMMIT_EDITMSG -<arguments>.
Điều đó sẽ nói với notepad ++ để mở tệp cam kết tạm thời, thay vì một tệp mới trống.