Saya lebih suka menulis pesan komit saya di Vim, tetapi membuka mereka di Emacs.
Bagaimana cara mengkonfigurasi Git untuk selalu menggunakan Vim? Perhatikan bahwa saya ingin melakukan ini secara global, bukan hanya untuk satu proyek.
Saya lebih suka menulis pesan komit saya di Vim, tetapi membuka mereka di Emacs.
Bagaimana cara mengkonfigurasi Git untuk selalu menggunakan Vim? Perhatikan bahwa saya ingin melakukan ini secara global, bukan hanya untuk satu proyek.
Jawaban:
Jika Anda ingin mengatur editor hanya untuk Git, lakukan salah satu (Anda tidak perlu keduanya):
core.editor
dalam konfigurasi Git Anda:git config --global core.editor "vim"
GIT_EDITOR
variabel lingkungan:export GIT_EDITOR=vim
Jika Anda ingin mengatur editor untuk Git dan juga program lain , setel variabel standar VISUAL
dan EDITOR
lingkungan *:
export VISUAL=vim
export EDITOR="$VISUAL"
* Pengaturan keduanya belum tentu diperlukan, tetapi beberapa program mungkin tidak menggunakan yang lebih benar VISUAL
. Lihat VISUAL
vsEDITOR
.
Untuk Teks Sublim : Tambahkan ini ke .gitconfig
. Ini --wait
penting (memungkinkan untuk mengetik teks dalam luhur dan akan menunggu untuk menyimpan / menutup acara.)
[core]
editor = 'subl' --wait
'subl' dapat digantikan oleh path lengkap dari executable tetapi biasanya tersedia ketika diinstal dengan benar.
git config --global
akan menulis ke file konfigurasi git pribadi Anda (per-pengguna). Di Units itu ~/.gitconfig
. Jadi ini akan mengkonfigurasinya untuk semua repositori Anda.
git commit --amend
-w
tidak perlu; -w {scriptout}
menyimpan semua karakter yang Anda ketik saat mengedit untuk memutar ulang nanti. Mungkin Anda membingungkan dengan -f
, yang merupakan diperlukan saat memanggil versi GUI dari Vim. Yaitu, jika Anda gunakan mvim
, maka editor yang Anda tentukan seharusnya mvim -f
bukan mvim
.
Salin tempel ini:
git config --global core.editor "vim"
Jika Anda ingin tahu apa yang Anda lakukan. Dari man git-commit
:
VARIABEL LINGKUNGAN DAN KONFIGURASI
Editor yang digunakan untuk mengedit pesan log komit akan dipilih dari
GIT_EDITOR
variabel lingkungan,core.editor
variabel konfigurasi,VISUAL
variabel lingkungan, atauEDITOR
variabel lingkungan (dalam urutan itu).
VISUAL
atau EDITOR
, tetapi mereka jelas tidak menggunakan GIT_EDITOR
atau core.editor
.
Di Ubuntu dan juga Debian (terima kasih @MichielB) mengubah editor default juga dimungkinkan dengan menjalankan:
sudo update-alternatives --config editor
Yang akan meminta hal berikut:
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
Sistem Debian adalah cara yang jauh lebih mudah untuk mengelola default untuk jenis program yang didukung. Untuk referensi: debian-administration.org/article/91/…
GIT_EDITOR
dan EDITOR
tidak bekerja --ubuntu
update-alternatives
akan menampilkan editor apa pun yang telah diinstal. Koen tidak menginstal Emacs.
Di windows 7, sambil menambahkan editor "Sublime" itu masih memberi saya kesalahan:
Batalkan komit karena pesan komit kosong.
Sublim tidak mampu mempertahankan fokus.
Untuk memperbaikinya saya membuka file .gitconfig di c: / users / username / folder dan menambahkan baris berikut dengan opsi --wait di luar tanda kutip ganda.
[core]
editor = 'F:/Program Files/Sublime Text 2/sublime_text.exe' --wait
Semoga bermanfaat bagi seseorang yang menghadapi masalah serupa dengan 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
dan tekan Enter
. Ini akan membuka Notepad ++.-multiInst
sebagai parameter ke notepad ++ dan mungkin -notabbar
. Lakukan ini jika git tampaknya tidak tahu kapan Anda selesai mengedit file dan apakah menunggu selamanya atau tidak sama sekali.
>git config --global core.editor '"C:/Program Files (x86)/Notepad++/notepad++.exe"'
editor = 'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar
- yaitu, params di luar tanda kutip tunggal pembatas
Untuk Membuat Visual Studio Code (vscode) sebagai editor git default Anda
git config --global core.editor "code --wait"
Dan jika Anda bekerja dengan desainer menggunakan baris perintah maka Pico, dan tidak tahu jalan pintas;)
git config --global core.editor "pico"
Atau
export VISUAL=pico
export EDITOR=pico
git config --global core.editor "atom --wait"
Atom perlu dikonfigurasi untuk dijalankan dari baris perintah agar hal di atas berfungsi:
OS X : instal perintah shell dari Atom: menu bar> Atom> Install Shell Command
Windows : tidak diperlukan tindakan - atom dikonfigurasi untuk dijalankan dari baris perintah secara default
Jalankan perintah ini:
$ git config --global core.editor "/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl"
Atau hanya:
$ git config --global core.editor "subl -w"
-w
parameter. Misalnya. $ git config --global core.editor "code -w"
. Barang
git config --global core.editor notepad.exe
Hit Ctrl+S untuk menyimpan pesan komit Anda. Untuk membuang, tutup saja jendela notepad tanpa menyimpan.
Jika Anda menekan pintasan untuk menyimpan, lalu memutuskan untuk membatalkan, buka File-> Save as, dan dalam dialog yang terbuka, ubah "Save as type" menjadi "All files (*. *)". Anda akan melihat file bernama "COMMIT_EDITMSG". Hapus itu, dan tutup jendela notepad.
Sunting: Atau, dan lebih mudah, hapus semua konten dari jendela notepad yang terbuka dan tekan save. (terima kasih mwfearnley untuk komentarnya!)
Saya pikir untuk menulis-up kecil seperti melakukan pesan notepad berfungsi paling baik, karena sederhana, apakah ada dengan windows, terbuka dalam waktu singkat. Bahkan agung Anda mungkin perlu satu atau dua detik untuk dinyalakan ketika Anda memiliki banyak plugins dan lainnya.
\r\n
(baris baru di Windows) dan \n
(baris baru di linux, juga default untuk Git).
core.editor = 'notepad' .git/COMMIT_EDITMSG --wait
sehingga membuka dan menyimpan pesan edit default dan Anda tidak perlu "save as"
Ini memberikan jawaban untuk orang-orang yang tiba di Pertanyaan ini yang mungkin ingin menautkan editor selain vim.
Sumber daya yang ditautkan, oleh Github , kemungkinan akan terus diperbarui, ketika editor diperbarui, bahkan jika jawaban pada SO (termasuk yang ini) tidak.
Mengaitkan Editor Teks dengan git
Posting Github menunjukkan dengan tepat apa yang harus diketikkan ke baris perintah Anda untuk berbagai editor, termasuk opsi / flag khusus untuk setiap editor agar dapat bekerja dengan git.
Notepad ++:
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Teks Sublim:
git config --global core.editor "'c:/Program Files/sublime text 3/subl.exe' -w"
Atom:
git config --global core.editor "atom --wait"
Perintah di atas menganggap editor Anda telah diinstal di direktori default untuk mesin windows.
Perintah pada dasarnya menambahkan teks di antara tanda kutip ganda ke .gitconfig
dalam direktori home Anda.
Di mesin windows, rumah mungkin berada C:\Users\your-user-name
, di mana nama pengguna Anda adalah nama login Anda.
Dari baris perintah, Anda dapat mencapai direktori ini dengan mengetikcd ~
.
misalnya, perintah di atas akan menambahkan baris berikut di bawah [core]
bagian seperti ini:
[core]
editor = 'C:/Program Files/sublime text 3/subl.exe' -w
Jika Anda memiliki editor yang berbeda, ganti saja dengan jalur ke editor Anda, menggunakan kedua metode di atas. (dan harap tidak ada bendera yang diperlukan untuk penggunaan optimal.)
Untuk pengguna emacs
.emacs
:
(server-start)
shellrc
:
export EDITOR=emacsclient
git config --global core.editor "emacs -nw"
git config --global core.editor "emacs -nw -q"
, di mana -q
melompati file inisialisasi.
Untuk mengikuti petunjuk ini di Windows, pastikan Anda telah menginstal Git untuk Windows . Di Windows, saya suka menggunakan Git Bash sehingga terasa lebih seperti Linux.
Pertama, kami ingin membuat proyek Teks Sublime khusus sehingga kami dapat menentukan pengaturan proyek khusus yang ingin kami atur setiap kali Git memanggil editor, untuk mempermudah ketika mengedit di Git. Sebagai contoh, saya biasanya mengatur penggaris saya ke 120 karakter di sebagian besar proyek, tetapi untuk Git melakukan pesan saya ingin itu menjadi 72 karakter sehingga cocok di terminal ketika Anda menelepon git log
atau git lg
.
Buka Teks Sublim dan buka menu "File" → "Jendela Baru" untuk membuat proyek anonim baru. Buka menu "Project" → "Save Project As ..." dan pilih tempat untuk menyimpannya. Di Linux saya menyimpannya di direktori home Linux saya dengan nama file .gitconfig.sublime-project
. Oleh karena itu jalurnya adalah: ~/.gitconfig.sublime-project
. Di Windows, simpan juga di direktori home Anda, misalnya: C:\Users\MY_USER_NAME\.gitconfig.sublime-project
Sekarang buka menu "Project" → "Edit Project" untuk mengedit pengaturan proyek. Rekatkan yang berikut dan simpan pengaturan. Lakukan pengeditan lebih lanjut untuk pengaturan proyek Anda jika diinginkan.
{
// 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":
[
]
}
Sekarang kita perlu mengatur editor untuk digunakan oleh Git, dengan mengedit .gitconfig
file.
Salinan pengguna Anda ini akan berlokasi di ~/.gitconfig
. Buka file ini dan tambahkan baris berikut. Pastikan untuk menggunakan nama jalur yang tepat untuk proyek Git yang baru saja Anda buat di atas! Saya menggunakan ~/.gitconfig.sublime-project
.
[core]
editor = subl --project ~/.gitconfig.sublime-project --wait
Ini --wait
penting, karena memaksa Git untuk menunggu sampai Anda menutup file sebelum melanjutkan. Itu--project
line penting untuk memberitahu Teks Sublime yang memproyeksikan Anda ingin membuka setiap kali Git membuka Teks Sublime.
Per @ digitaldreamer menjawab di atas ( https://stackoverflow.com/a/2596835/4561887 ), " subl
dapat digantikan oleh path lengkap dari executable tetapi [aliassubl
] biasanya tersedia ketika [Sublime] diinstal dengan benar."
Untuk Windows, pertama baca instruksi Linux untuk informasi latar belakang. Sekarang kita akan melakukan sesuatu yang hampir identik.
(OPTIONAL: buat subl
alias untuk digunakan di Git Bash):
Buka editor teks (misalnya, Notepad, Notepad ++, Sublime Text, Geany , dll.), Dan buat file bernama ".bash_profile" di direktori home Anda. Dilaluinya karena itu akan menjadi: C:\Users\MY_USER_NAME\.bash_profile
. Simpan yang berikut ini ke dalamnya:
alias subl="/c/Program\ Files/Sublime\ Text\ 3/subl.exe"
Ini menciptakan alias Git Bash yang disebut subl
yang sekarang dapat kita gunakan di Git Bash untuk Windows, untuk dengan mudah membuka Sublime Text. Langkah ini tidak diperlukan, tetapi berguna untuk penggunaan umum Git Bash. Sekarang Anda dapat memanggil subl .
, misalnya, di Git Bash untuk membuka proyek Teks Sublime baru di direktori Anda saat ini.
(WAJIB):
Edit .gitconfig
file yang ditemukan di direktori home Anda:, C:\Users\MY_USER_NAME\.gitconfig
dengan menambahkan yang berikut ke dalamnya. Perhatikan perubahan halus dari instruksi Linux di atas:
[core]
editor = 'C:/Program Files/Sublime Text 3/subl.exe' --project ~/.gitconfig.sublime-project --wait
/
BUKAN \
untuk memisahkan folder dalam nama jalur! (Terima kasih VonC untuk membantu saya melihat ini ).subl
alias yang kami buat untuk Git Bash atas tidak bekerja di sini, sehingga Anda tidak dapat menggunakannya seperti yang kami lakukan pada contoh Linux, bukannya Anda harus menentukan seluruh jalan seperti yang ditunjukkan di atas.~
simbol, bagaimanapun, masih bekerja di sini untuk mendapatkan direktori home Windows Anda.Ini memberi Anda sorotan sintaksis untuk git commit
pesan, serta akses ke perintah Git lain seperti git blame
(yang sering saya gunakan dalam Teks Sublime) ataugit commit
(yang tidak saya gunakan dalam Teks Sublime karena saya lebih suka baris perintah untuk Git umum mengalir, seperti yang saya sebutkan di komentar saya di bawah jawaban ini).
Untuk menginstal paket: Pertama, pastikan "Kontrol Paket" diinstal. Selanjutnya, tekan Ctrl+ Shift+ P(sama dengan Alat → Palet Perintah) dan ketik semua atau sebagian dari "Kontrol Paket: Instal Paket", lalu tekan Enter. Di kotak pencarian yang muncul, cari paket "Git" dan tekan Enterdi atasnya, atau klik di atasnya, untuk menginstalnya secara otomatis.
Setelah terinstal, Ctrl+ Shift+ Pkemudian mencari "git" akan memunculkan perintah Git yang dapat Anda gunakan secara internal di dalam Sublime Text sekarang, seperti git blame
.
Sekarang ketika Anda memanggil git commit
, misalnya, seperti biasa dari baris perintah, Sublime Text akan terbuka ke yang .gitconfig.sublime-project
kita buat di atas, dengan pengaturan proyek itu! Saat Anda mengetik paragraf, Anda akan melihatnya meluas melewati penggaris yang kita atur karena soft-wrap tidak aktif. Untuk memaksa bungkus keras melalui pengembalian otomatis yang dimasukkan secara otomatis di akhir setiap baris, letakkan kursor Anda pada garis panjang yang Anda inginkan terbungkus otomatis dan tekan Alt+ Q. Sekarang akan hard-wrap / hard-fold di 72 karakter, yang adalah apa yang kita atur di parameter pengaturan proyek '"penggaris" di atas.
Sekarang, simpan pesan komit Anda dengan Ctrl+ S, dan keluar (untuk menyelesaikan Anda git commit
) dengan Ctrl+ Shift+ W.
Selesai!
Git Commit
jenis sintaks. Anda dapat melewati langkah "proyek teks-agung" kustom sekarang.
sublime
dengan git
dan juga menggunakan, trim_trailing_white_space_on_save
Anda ingin menambahkan alias untuk menambahkan tambalan karena menghapus spasi putih menghilangkan tambalan tambalan yang sangat berarti. Ini dapat dicapai dengan sesuatu seperti ini:git config --global alias.patch "-c core.editor=vim add --patch"
Seperti semua aplikasi GUI lainnya, Anda harus meluncurkan mvim dengan flag tunggu.
git config --global core.editor "mvim --remote-wait"
--remote-wait-silent
untuk menghindari pesan kesalahan jelek :)
Untuk pengguna Windows yang ingin menggunakan neovim dengan Windows Subsystem untuk Linux:
git config core.editor "C:/Windows/system32/bash.exe --login -c 'nvim .git/COMMIT_EDITMSG'"
Ini bukan solusi yang bodoh karena tidak menangani rebasing interaktif (misalnya). Perbaikan sangat disambut!
Coba saja EDITOR=vim git commit
.
Atau Anda dapat mengatur EDITOR Anda ke vim export EDITOR=vim
di bashrc Anda.
git config --global core.editor "open -n -W -a TextWrangler"
Juga, pastikan "TextWrangler> Preferensi> Aplikasi> Anda ketika TextWrangler menjadi aktif:" pengaturan diatur ke "Tidak melakukan apa-apa"
Ini berfungsi untuk saya di OS X 10.11.4 dengan TextWrangler 5.0.2 dari toko aplikasi Mac.
Penjelasan:
The -n berarti terbuka di contoh baru.
The -W sarana untuk menunggu sampai aplikasi keluar sebelum menggunakan isi dari file diedit sebagai pesan commit.
The- TextWrangler berarti menggunakan aplikasi TextWrangler untuk membuka file.
Lihat man open
di aplikasi Terminal Mac Anda untuk detail lebih lanjut.
git config --global core.editor "edit -w"
. Ini akan membuka pesan komit dalam instance saat ini dan segera setelah Anda menutup hanya dokumen pesan komit ini, komit akan melanjutkan.
Saat menggunakan git-review
saya harus mengubah sequence.editor
nilai untuk dapat melakukan rebase interaktif ( git rebase -i -p
):
git config --global sequence.editor "gvim" # or whatever your prefer
gvim
memerlukan: apt install vim-gtk
Untuk Mac OS X, menggunakan TextEdit atau editor lingkungan alami untuk teks:
git config --global core.editor "open -W -n"
Hanya karena saya datang ke sini mencari solusi satu kali (dalam kasus saya, saya biasanya menggunakan vim
tetapi kali ini saya ingin menggunakan Kode VS) untuk satu perintah dan yang lain mungkin ingin tahu juga:
GIT_EDITOR='code -w' git rebase -i …
Berikut saya git
/ hub
versi hanya untuk konteks:
git version 2.24.2 (Apple Git-127)
hub version 2.14.1
Untuk pengguna IntelliJ
Ketika saya mencoba git rebase saya mendapatkan kesalahan berikut: 'petunjuk: Menunggu editor Anda menutup file ... code -n -w: code: command not found error: Ada masalah dengan kode editor' -n -w '.'
Kesalahan yang sama muncul ketika saya mencoba mengaitkan IntelliJ dengan Git:
Masalahnya adalah bahwa saya tidak memiliki kode perintah yang ditambahkan dalam variabel PATH lingkungan saya. Dan saya tidak ingin menggunakan Visual Studio Code dari terminal saya. Jadi itu sebabnya diminta "perintah tidak ditemukan". Saya memecahkan ini dengan menghapus
editor = kode -n -w
dari bagian inti dalam file .gitconfig saya. Git bekerja dengan baik lagi.
Ini membuka editor Textmate ketika Anda ingin mengedit komit Anda. Membutuhkan alat baris perintah textmate untuk diinstal.
git config --global core.editor "mate -w"
git config --global core.editor "/usr/local/bin/mate -w"
Buat file bernama 'k.sh', tambahkan teks berikut dan tempatkan di direktori home Anda (~):
winpty "C:\Program Files (x86)\Kinesics Text Editor\x64\k.exe" $1
Pada tipe prompt git:
git config --global core.editor ~/k.sh