Tôi muốn viết tin nhắn cam kết của mình trong Vim, nhưng nó đang mở chúng trong Emacs.
Làm cách nào để định cấu hình Git để luôn sử dụng Vim? Lưu ý rằng tôi muốn làm điều này trên toàn cầu, không chỉ cho một dự án.
Tôi muốn viết tin nhắn cam kết của mình trong Vim, nhưng nó đang mở chúng trong Emacs.
Làm cách nào để định cấu hình Git để luôn sử dụng Vim? Lưu ý rằng tôi muốn làm điều này trên toàn cầu, không chỉ cho một dự án.
Câu trả lời:
Nếu bạn muốn thiết lập các biên tập viên chỉ cho Git, làm một trong hai (bạn không cần phải cả hai):
core.editor
trong cấu hình Git của bạn:git config --global core.editor "vim"
GIT_EDITOR
biến môi trường:export GIT_EDITOR=vim
Nếu bạn muốn đặt trình chỉnh sửa cho Git và các chương trình khác , hãy đặt các biến môi trường VISUAL
và tiêu chuẩn hóa EDITOR
*:
export VISUAL=vim
export EDITOR="$VISUAL"
* Cài đặt cả hai không nhất thiết là cần thiết, nhưng một số chương trình có thể không sử dụng chính xác hơn VISUAL
. Xem VISUAL
so vớiEDITOR
.
Đối với văn bản cao siêu : Thêm phần này vào .gitconfig
. Điều --wait
này rất quan trọng (nó cho phép nhập văn bản cao siêu và sẽ chờ sự kiện lưu / đóng.)
[core]
editor = 'subl' --wait
'subl' có thể được thay thế bằng đường dẫn đầy đủ của tệp thực thi nhưng thường có sẵn khi được cài đặt chính xác.
git config --global
sẽ ghi vào tệp cấu hình git cá nhân (mỗi người dùng) của bạn. Trên Unices là nó ~/.gitconfig
. Vì vậy, điều này sẽ cấu hình nó cho tất cả các kho lưu trữ của bạn.
git commit --amend
-w
là không cần thiết; -w {scriptout}
lưu tất cả các ký tự bạn nhập khi chỉnh sửa để phát lại sau. Có lẽ bạn đang nhầm lẫn nó với -f
, mà là cần thiết khi gọi phiên bản GUI của Vim. Đó là, nếu bạn sử dụng mvim
, thì trình soạn thảo bạn chỉ định nên mvim -f
thay vì mvim
.
Sao chép dán này:
git config --global core.editor "vim"
Trong trường hợp bạn muốn biết những gì bạn đang làm. Từ man git-commit
:
MÔI TRƯỜNG VÀ BIẾN ĐỔI MÔI TRƯỜNG
Trình chỉnh sửa được sử dụng để chỉnh sửa thông điệp nhật ký cam kết sẽ được chọn từ
GIT_EDITOR
biến môi trường,core.editor
biến cấu hình,VISUAL
biến môi trường hoặcEDITOR
biến môi trường (theo thứ tự đó).
VISUAL
hoặc EDITOR
, nhưng họ chắc chắn không sử dụng GIT_EDITOR
hoặc core.editor
.
Trên Ubuntu và cả Debian (cảm ơn @MichielB) cũng có thể thay đổi trình chỉnh sửa mặc định bằng cách chạy:
sudo update-alternatives --config editor
Điều này sẽ nhắc như sau:
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
* 3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number:
alternatives
Hệ thống của Debian là cách dễ dàng hơn nhiều để quản lý mặc định cho các loại chương trình được hỗ trợ. Để tham khảo: debian-adftime.org/article/91/ Mạnh
GIT_EDITOR
và EDITOR
không hoạt động
update-alternatives
sẽ hiển thị bất kỳ trình soạn thảo nào đã được cài đặt. Koen không cài đặt Emacs.
Trong windows 7, trong khi thêm trình chỉnh sửa "Sublime", nó vẫn báo lỗi:
Hủy bỏ cam kết do tin nhắn cam kết trống.
Sublime đã không thể giữ sự tập trung.
Để khắc phục điều này, tôi đã mở tệp .gitconfig trong thư mục c: / users / username / và thêm dòng sau với tùy chọn --wait bên ngoài dấu ngoặc kép.
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
Hy vọng nó hữu ích cho ai đó phải đối mặt với vấn đề tương tự với Sublime.
git config --global core.editor "'C:/Program Files/Sublime Text 3/subl.exe' --wait"
C:\Users\YOUR_USERNAME\.gitconfig
[core]
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe'
git commit
và nhấn Enter
. Nó sẽ bật Notepad ++.-multiInst
là một tham số cho notepad ++ và có thể -notabbar
. Làm điều này nếu git dường như không biết khi nào bạn hoàn thành chỉnh sửa tệp và chờ đợi mãi mãi hay không.
>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar
- nghĩa là, các thông số bên ngoài các trích dẫn đơn phân định
Để tạo Visual Studio Code (vscode) trình chỉnh sửa git mặc định của bạn
git config --global core.editor "code --wait"
Và nếu bạn đang làm việc với các nhà thiết kế bằng cách sử dụng dòng lệnh thì Pico và không biết các đường tắt ngắn;)
git config --global core.editor "pico"
Hoặc là
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Nguyên tử cần được cấu hình để chạy từ dòng lệnh để hoạt động ở trên:
OS X : cài đặt các lệnh shell từ Atom: thanh menu> Atom> Cài đặt các lệnh Shell
Windows : không cần hành động - nguyên tử được cấu hình để chạy từ dòng lệnh theo mặc định
Chạy lệnh này:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
Hoặc chỉ:
$ git config --global core.editor "subl -w"
-w
tham số. Ví dụ. $ git config --global core.editor "code -w"
. Nội dung gọn gàng
git config --global core.editor notepad.exe
Nhấn Ctrl+ Sđể lưu tin nhắn cam kết của bạn. Để loại bỏ, chỉ cần đóng cửa sổ notepad mà không lưu.
Trong trường hợp bạn nhấn phím tắt để lưu, sau đó quyết định hủy bỏ, hãy đi tới Tệp-> Lưu dưới dạng và trong hộp thoại mở ra, thay đổi "Lưu dưới dạng" thành "Tất cả tệp (*. *)". Bạn sẽ thấy một tập tin có tên "COMMIT_EDITMSG". Xóa nó và đóng cửa sổ notepad.
Chỉnh sửa: Cách khác, và dễ dàng hơn, xóa tất cả nội dung khỏi cửa sổ notepad đang mở và nhấn lưu. (cảm ơn mwfearnley đã bình luận!)
Tôi nghĩ rằng đối với các bài viết nhỏ như tin nhắn cam kết notepad phục vụ tốt nhất, bởi vì nó đơn giản, có cửa sổ, mở ra ngay lập tức. Ngay cả sự siêu phàm của bạn cũng có thể mất một hoặc hai giây để bị đuổi việc khi bạn có vô số plugin và công cụ.
\r\n
(dòng mới trong Windows) và \n
(dòng mới trong linux, cũng mặc định cho Git).
core.editor = 'notepad' .git/COMMIT_EDITMSG --wait
để nó mở và lưu thông báo chỉnh sửa mặc định và bạn không cần "lưu dưới dạng"
Điều này cung cấp câu trả lời cho những người đến Câu hỏi này có thể muốn liên kết một biên tập viên khác ngoài vim.
Tài nguyên được liên kết, bởi Github , có thể sẽ được cập nhật, khi các biên tập viên được cập nhật, ngay cả khi câu trả lời trên SO (bao gồm cả cái này) thì không.
Liên kết Trình chỉnh sửa văn bản với git
Bài đăng của Github hiển thị chính xác những gì cần nhập vào dòng lệnh của bạn cho các trình soạn thảo khác nhau, bao gồm các tùy chọn / cờ cụ thể cho từng trình soạn thảo để nó hoạt động tốt nhất với git.
Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Văn bản cao siêu:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"
Nguyên tử:
git config --global core.editor "atom --wait"
Các lệnh trên giả sử trình soạn thảo của bạn đã được cài đặt trong thư mục mặc định cho máy windows.
Các lệnh về cơ bản thêm văn bản giữa dấu ngoặc kép .gitconfig
vào thư mục chính của bạn.
Trên một máy chủ windows có khả năng là C:\Users\your-user-name
, nơi tên người dùng của bạn là tên đăng nhập của bạn.
Từ dòng lệnh, bạn có thể đến thư mục này bằng cách nhập vào cd ~
.
ví dụ, một lệnh ở trên sẽ được thêm dòng sau vào [core]
phần như sau:
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Nếu bạn có một trình soạn thảo khác, chỉ cần thay thế bằng đường dẫn đến trình soạn thảo của bạn, sử dụng một trong hai phương pháp trên. (và hy vọng không có cờ nào là cần thiết để sử dụng tối ưu.)
Dành cho người dùng emacs
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
git config --global core.editor "emacs -nw"
git config --global core.editor "emacs -nw -q"
, nơi -q
bỏ qua các tập tin khởi tạo.
Để làm theo các hướng dẫn này trong Windows, hãy đảm bảo bạn đã cài đặt Git cho Windows . Trong Windows, tôi thích sử dụng Git Bash để nó có cảm giác giống Linux hơn.
Đầu tiên, chúng tôi muốn tạo một dự án Sublime Text đặc biệt để chúng tôi có thể chỉ định cài đặt dự án đặc biệt mà chúng tôi muốn đặt bất cứ khi nào Git gọi trình chỉnh sửa, để giúp mọi việc dễ dàng hơn khi chỉnh sửa trong Git. Ví dụ, tôi thường đặt thước kẻ của mình thành 120 ký tự trong hầu hết các dự án, nhưng đối với các thông báo cam kết Git, tôi muốn nó có 72 ký tự để nó phù hợp độc đáo trong một thiết bị đầu cuối khi bạn gọi git log
hoặc git lg
.
Mở Sublime Text và vào menu "File" → "New Window" để tạo một dự án ẩn danh mới. Vào menu "Project" → "Save Project As ..." và chọn một nơi để lưu nó. Trong Linux tôi đã lưu nó trong thư mục nhà Linux của tôi với tên tệp .gitconfig.sublime-project
. Do đó, đường dẫn của nó là : ~/.gitconfig.sublime-project
. Trong Windows cũng lưu nó trong thư mục chính của bạn, ví dụ: C:\Users\MY_USER_NAME\.gitconfig.sublime-project
Bây giờ, hãy chuyển đến trình đơn "Dự án" → "Chỉnh sửa dự án" để chỉnh sửa cài đặt dự án. Dán như sau và lưu các cài đặt. Thực hiện bất kỳ chỉnh sửa nào thêm cho cài đặt dự án của bạn nếu muốn.
{
// For folder settings help see here: https://www.sublimetext.com/docs/3/projects.html
"folders":
[
],
"settings":
{
// Disables horizontal scrolling if enabled.
// May be set to true, false, or "auto", where it will be disabled for
// source code, and otherwise enabled.
"word_wrap": false,
// Set to a value other than 0 to force wrapping at that column rather than the
// window width
"wrap_width": 0,
// Columns in which to display vertical rulers
"rulers": [72, 50], //72 is recommended by git for commit message content, and 50 for commit titles
// The number of spaces a tab is considered equal to
"tab_size": 4,
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": true,
},
"build_systems":
[
]
}
Bây giờ chúng ta cần thiết lập trình chỉnh sửa được Git sử dụng, bằng cách chỉnh sửa .gitconfig
tệp.
Bản sao người dùng của bạn sẽ được đặt trong ~/.gitconfig
. Mở tệp này và thêm các dòng sau. Hãy chắc chắn sử dụng tên đường dẫn thích hợp cho dự án Git mà bạn vừa tạo ở trên! Tôi đang sử dụng ~/.gitconfig.sublime-project
.
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
Điều --wait
này rất quan trọng, vì nó buộc Git phải đợi cho đến khi bạn đóng tệp trước khi tiếp tục. Các --project
dòng là quan trọng muốn nói chữ Sublime mà dự án bạn muốn mở bất cứ khi nào Git mở chữ Sublime.
Câu trả lời của Per @ Digitaldreamer ở trên ( https://stackoverflow.com/a/2596835/4561887 ), " subl
có thể được thay thế bằng đường dẫn đầy đủ của tệp thực thi nhưng [bí danh subl
] thường có sẵn khi [Sublime được cài đặt chính xác."
Đối với Windows, trước tiên hãy đọc hướng dẫn Linux để biết thông tin cơ bản. Bây giờ chúng tôi sẽ làm một cái gì đó gần như giống hệt nhau.
(TÙY CHỌN: tạo subl
bí danh để sử dụng trong Git Bash):
Mở trình soạn thảo văn bản (ví dụ: Notepad, Notepad ++, Sublime Text, Geany , v.v.) và tạo một tệp có tên ".bash_profile" trong thư mục chính của bạn. Do đó, đường dẫn của nó sẽ là : C:\Users\MY_USER_NAME\.bash_profile
. Lưu những điều sau vào nó:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
Điều này tạo ra một bí danh Git Bash được gọi là subl
bây giờ chúng ta có thể sử dụng trong Git Bash cho Windows, để dễ dàng mở Sublime Text. Bước này không bắt buộc, nhưng nó hữu ích cho việc sử dụng Git Bash chung. Bây giờ, bạn có thể gọi subl .
, trong Git Bash để mở một dự án Sublime Text mới trong thư mục hiện tại của bạn.
(BẮT BUỘC):
Chỉnh sửa .gitconfig
tập tin tìm thấy trong thư mục nhà của bạn:C:\Users\MY_USER_NAME\.gitconfig
, bằng cách thêm vào sau đây. Lưu ý những thay đổi tinh tế từ các hướng dẫn Linux ở trên:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
/
KHÔNG\
để phân tách các thư mục trong tên đường dẫn! (Cảm ơn VonC đã giúp tôi thấy điều này ).subl
alias chúng tôi thực hiện cho Git Bash trên không làm việc ở đây, vì vậy bạn không thể sử dụng nó như chúng tôi đã làm trong ví dụ Linux, thay vào đó bạn phải ghi rõ toàn bộ đường dẫn như trình bày ở trên.~
biểu tượng, tuy nhiên, hiện vẫn còn làm việc ở đây để có được vào thư mục chính của Windows.Điều này cung cấp cho bạn cú pháp tô sáng cho git commit
các tin nhắn, cũng như truy cập vào các lệnh Git khác, chẳng hạn như git blame
(mà tôi sử dụng thường xuyên trong Văn bản cao siêu) hoặcgit commit
(mà tôi không sử dụng trong Văn bản tuyệt vời vì tôi thích dòng lệnh cho Git chung dòng chảy, như tôi đã đề cập trong các bình luận của tôi bên dưới câu trả lời này).
Để cài đặt gói: Trước tiên, hãy đảm bảo Gói điều khiển Gói được cài đặt. Tiếp theo, nhấn Ctrl+ Shift+ P(giống như Công cụ → Bảng màu lệnh) và nhập tất cả hoặc một phần của Điều khiển gói Gói: Cài đặt Gói Gói, sau đó nhấn Enter. Trong hộp tìm kiếm xuất hiện, tìm kiếm gói "Git" và nhấn Entervào nó, hoặc bấm vào nó, để tự động cài đặt nó.
Sau khi cài đặt, Ctrl+ Shift+ Psau đó tìm kiếm "git" sẽ hiển thị các lệnh Git mà bạn có thể sử dụng bên trong Sublime Text ngay bây giờ, chẳng hạn như git blame
.
Bây giờ, khi bạn gọi git commit
, như bình thường từ dòng lệnh, Sublime Text sẽ mở ra trong phần .gitconfig.sublime-project
chúng tôi đã tạo ở trên, với các cài đặt của dự án đó! Khi bạn nhập một đoạn, bạn sẽ nhận thấy nó kéo dài qua thước kẻ mà chúng ta đã đặt do tính năng ngắt từ mềm. Để buộc bọc cứng thông qua trả lại cứng tự động chèn vào cuối mỗi dòng, đặt con trỏ của bạn trên dòng dài bạn muốn tự động bọc và nhấn Alt+ Q. Bây giờ nó sẽ cứng / gấp cứng ở 72 ký tự, đó là những gì chúng ta đặt trong tham số "thước kẻ" của cài đặt dự án ở trên.
Bây giờ, lưu thông điệp cam kết của bạn bằng Ctrl+ Svà thoát (để hoàn thành git commit
) với Ctrl+ Shift+W .
Làm xong!
Git Commit
kiểu cú pháp. Bây giờ bạn có thể bỏ qua bước "dự án văn bản cao siêu" tùy chỉnh.
sublime
cùng git
và cũng sử dụng, trim_trailing_white_space_on_save
bạn muốn thêm một bí danh để thêm bản vá vì việc xóa dấu cách khoảng trắng sẽ phá vỡ các bản chỉnh sửa trong đó rất có ý nghĩa. Điều này có thể đạt được với một cái gì đó như thế này:git config --global alias.patch "-c core.editor=vim add --patch"
Giống như tất cả các ứng dụng GUI khác, bạn phải khởi chạy mvim với cờ chờ.
git config --global core.editor "mvim --remote-wait"
--remote-wait-silent
để tránh thông báo lỗi xấu xí :)
Đối với người dùng Windows muốn sử dụng neovim với Hệ thống con Windows cho Linux:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
Đây không phải là một giải pháp chống lừa vì nó không xử lý việc khởi động lại tương tác (ví dụ). Cải tiến rất đáng hoan nghênh!
Cứ thử đi EDITOR=vim git commit
.
Hoặc bạn có thể đặt EDITOR của mình thành vim bằng export EDITOR=vim
bashrc.
git config --global core.editor "open -n -W -a TextWrangler"
Ngoài ra, hãy đảm bảo "TextWrangler> Tùy chọn> Ứng dụng> Khi TextWrangler hoạt động:" cài đặt được đặt thành "Không làm gì"
Điều này hoạt động với tôi trên OS X 10.11.4 với TextWrangler 5.0.2 từ cửa hàng ứng dụng Mac.
Giải trình:
Các -n phương tiện mở trong một trường hợp mới.
các -W phương tiện để chờ cho đến khi thoát khỏi ứng dụng trước khi sử dụng các nội dung của tập tin đã chỉnh sửa như các cam kết thông báo.
Các TextWrangler -a phương tiện sử dụng ứng dụng TextWrangler để mở tập tin.
Xem man open
trong ứng dụng Mac Terminal của bạn để biết thêm chi tiết.
git config --global core.editor "edit -w"
. Điều này sẽ mở thông báo cam kết trong trường hợp hiện tại và ngay khi bạn chỉ đóng tài liệu thông báo cam kết này, cam kết sẽ tiếp tục.
Khi sử dụng git-review
tôi phải sửa đổi sequence.editor
giá trị để có thể thực hiện rebase tương tác ( git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
yêu cầu: apt install vim-gtk
Đối với Mac OS X, sử dụng TextEdit hoặc trình chỉnh sửa môi trường tự nhiên cho văn bản:
git config --global core.editor "open -W -n"
Chỉ vì tôi đến đây để tìm giải pháp một lần (trong trường hợp của tôi, tôi thường sử dụng vim
nhưng lần này tôi muốn sử dụng Mã VS) cho một lệnh duy nhất và những người khác cũng có thể muốn biết:
GIT_EDITOR='code -w' git rebase -i …
Đây là git
/ hub
phiên bản của tôi chỉ dành cho ngữ cảnh:
git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Dành cho người dùng IntelliJ
Khi tôi đang cố git rebase, tôi đã gặp phải lỗi sau: 'gợi ý: Đang chờ trình soạn thảo của bạn đóng tệp ... code -n -w: code: lệnh không tìm thấy lỗi: Có vấn đề với mã của trình soạn thảo -n -w '.'
Lỗi tương tự xuất hiện khi tôi đang cố liên kết IntelliJ với Git:
Vấn đề là tôi không có mã lệnh được thêm vào trong biến PATH môi trường của mình. Và tôi không muốn sử dụng Visual Studio Code từ thiết bị đầu cuối của mình. Vì vậy, đó là lý do tại sao nó nhắc "lệnh không tìm thấy". Tôi đã giải quyết điều này bằng cách xóa
biên tập viên = mã -n -w
từ phần cốt lõi trong tệp .gitconfig của tôi. Git làm việc đúng cách một lần nữa.
Điều này sẽ mở trình soạn thảo Textmate khi bạn muốn chỉnh sửa các cam kết của mình. Yêu cầu các công cụ dòng lệnh textmate được cài đặt.
git config --global core.editor "mate -w"
git config --global core.editor "/usr/local/bin/mate -w"
Tạo một tệp có tên 'k.sh', thêm văn bản sau và đặt vào thư mục chính của bạn (~):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
Tại dấu nhắc git:
git config --global core.editor ~/k.sh