Bagaimana saya bisa menjadikan Sublime Text editor default untuk Git?

216

Saya memiliki masalah mengatur Sublime Text 2 sebagai core.editordengan git.

Saya telah membaca setiap posting yang saya temukan mengatasi masalah, tetapi tetap tidak ada yang berhasil untuk saya. Saya menjalankan Windows.

Saya sudah selesai:

git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe'"

dan mencobanya dengan berbagai argumen seperti -m. Ketika saya membuka .gitconfig, ini yang ada di sana:

[user]
    name = Spencer Moran
    email = [email protected]
[core]
    editor = 'C:/Program Files/Sublime Text 2/sublime_text.exe'

Jika saya pergi ke Git dan ketik:

README.markdown --edit

file README terbuka di Notepad, bukan Sublime Text.

Adakah yang tahu kesalahan saya atau bagaimana saya bisa memperbaikinya?

Spencer Moran
sumber
11
Jika Anda mengetik hanya README.markdown --edit di cmd.exe, gittidak terlibat sama sekali. Ubah asosiasi file Anda di windows jika Anda ingin itu berfungsi.
Mat
1
FYI umum untuk sebagian besar jawaban di bawah ini: -wberarti "Tunggu file ditutup sebelum kembali," dan -nberarti "Buka jendela baru." Sumber: docs.sublimetext.info/en/latest/command_line/command_line.html
MarredCheese
Pengaturan favorit saya untuk menggunakan Sublime Text 3 sebagai editor git saya: stackoverflow.com/questions/2596805/…
Gabriel Staples

Jawaban:

343

Windows

Sublime Text 2 (Build 2181)

Build 2181 terbaru baru saja menambahkan dukungan untuk -wargumen baris perintah (tunggu). Konfigurasi berikut ini akan memungkinkan ST2 berfungsi sebagai editor git default Anda di Windows. Ini akan memungkinkan git untuk membuka ST2 untuk melakukan pesan dan semacamnya.

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Sublime Text 3 (Build 3065)

Sublime Text 3 (Build 3065) menambahkan subl.exepembantu baris perintah. Gunakan subl.exe -huntuk opsi yang tersedia untuk Anda. Saya memiliki hot_exit: truedan remember_open_files: truemengatur dalam pengaturan pengguna Teks Sublim saya. Saya telah menemukan yang berikut ini agar git config berfungsi dengan baik untuk saya.

git config --global core.editor "'c:/program files/sublime text 3/subl.exe' -w"

Mac dan Linux

Tetapkan Sublime sebagai editor Anda untuk Git dengan mengetik perintah berikut di terminal:

git config --global core.editor "subl -n -w"


Dengan konfigurasi Git ini, tab baru dibuka di editor saya. Saya mengedit pesan komit saya, menyimpan tab ( Ctrl+ S) dan menutupnya ( Ctrl+ W).

Git akan menunggu sampai tab ditutup untuk melanjutkan pekerjaannya.

jrotello
sumber
14
Secara pribadi, selain mengatur editor saya seperti yang disarankan @jrotello, pengalaman ST2 / git saya meningkat banyak ketika saya menambahkan opsi berikut ke pengaturan ST2 saya: {"hot_exit": false, "remember_open_files": false, "close_windows_when_empty": true }
Sandy
6
@ Phrogz: Saya bisa membuatnya bekerja di .gitconfig saya dengan sintaks berikut:editor = 'C:\\Program Files\\Sublime Text 2\\sublime_text.exe' -w
awayken
4
Bagi saya, ini akan membuka tab baru jika teks sublim sudah terbuka. Menutup tab, jangan biarkan git tahu itu dilakukan. Saya sudah mencoba --multiinstance, tetapi sepertinya tidak melakukan apa-apa.
David Faivre
5
perhatikan bahwa ketika hot_exitsalah dan lampu padam semua pekerjaan yang belum disimpan akan hilang !!!!!!!!!!
Jürgen Paul
4
Sebenarnya, dengan menggunakan "-n -w", git tampaknya tidak dapat memberi tahu bahwa jendela teks sublim ditutup (setidaknya jika saya memiliki jendela sublim yang terbuka setidaknya). "-w --multiinstance" sepertinya masih bekerja dengan baik, meskipun di jendela baru yang luhur setiap tab yang ada dibuka kembali. Tampaknya mereka dapat diabaikan dengan aman.
David Faivre
94

Anda dapat menggunakan perintah ini di Mac dan Linux:

git config --global core.editor "subl -n -w"
sfufoet
sumber
26
Sebenarnya, rekomendasi pada Mac hari ini adalah untuk symlink subl ke suatu tempat di $ PATH Anda dan atur editor Anda ke 'subl -w'. Ada dalam dokumen resmi.
Sandy
8
Dokumen yang sayaacu
Sandy
8
Dokumen mengatakan untuk digunakan subl -w, tetapi jika Anda memiliki tab lain yang terbuka ini tidak akan berfungsi dengan benar. Saya telah menemukan subl -n -wkarya yang lebih baik karena membuka jendela baru.
iano
1
@iano jika saya melakukan itu haruskah saya menutup tab atau menutup jendela untuk melakukan? tutup jendela tidak berfungsi
Karthik T
Ini membuka dokumen kosong dengan luhur bagi saya sampai saya mengikuti petunjuk ini: sublimetext.com/docs/3/osx_command_line.html tetapi mengubah jalur dari Sublime Text.app ke Sublime Text 2.app
Evans
14

Untuk Mac OS X dalam file ~ / .gitconfig pada [core] saya harus meletakkan kode ini untuk menyelesaikan masalah di pihak saya.

editor = /Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl  -n -w

Inilah saat subl bekerja dengan baik tetapi git tidak dapat mengaksesnya. Dan sedang menampilkan kesalahan ini

subl -n -w: subl: command not found
error: There was a problem with the editor 'subl -n -w'.
Ahmad Awais
sumber
11

Untuk Teks Mac & Sublime 3 :

Jika git config --global core.editor "subl -n -w"tidak berhasil, gunakan git configperintah ini :

$ git config --global core.editor "'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl' -n -w"

Catatan: itu tidak mengandung garis miring terbalik.

nu-bo
sumber
7

apa yang berhasil untuk saya di cygwin / zsh:

di / usr / local / bin buat file subl_git

#!/bin/bash
/cygdrive/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -w -n `cygpath -w $@`

di gitconfig:

editor = /usr/local/bin/subl_git
meeech
sumber
maafkan pertanyaan pemula saya tetapi bagaimana cara mengakses gitconfig? Apakah ini berbeda dengan berlari git config --list? Terima kasih sebelumnya.
Ryan Chase
yang hanya daftar mereka. Anda perlu mengedit gitconfig
meeech
Saya memiliki ruang di folder pengguna saya jadi saya menggunakan modifikasi -"/cygdrive/c/Program Files/Sublime Text 3/subl.exe" -w -n "`cygpath -d -w "$@"`
Mark
6

Dengan Sublime Text 2 dan konfigurasi berikut, jika tidak ada yang terjadi ketika Anda menutup file komentar git commit:

git config --global core.editor "'c:/program files/sublime text 2/sublime_text.exe' -w"

Jika komit git tidak selesai ketika Anda menutup file komentar COMMIT_EDITMSG di Sublime, saya menemukan ini mungkin karena Anda menjalankan CMD dalam mode administrator (dan Teks Sublime sudah dibuka dalam mode non admin). Saya memiliki masalah yang sama dan itu bekerja untuk saya ketika saya memulai CMD saya dalam mode normal.

Ps: hanya ingin menjawab masalah @david yang ditunjukkan dalam komentar jawaban yang diterima, tetapi saya tidak dapat memposting komentar karena saya baru di sini ... jadi saya sudah membuat jawaban baru, karena saya pikir ini bisa menjadi berguna untuk beberapa orang yang menghadapi masalah.

Francois
sumber
Terima kasih atas tipnya. Apakah Anda tahu solusinya?
Scott Wegner
@ScottWegner Luncurkan CMD Anda dalam mode non-admin, sebagai solusinya. Anda tidak perlu berada dalam mode admin untuk menjalankan perintah git. Namun, Jika Anda benar-benar perlu dalam mode admin, maka saya tidak menemukan solusi untuk ini, kecuali membuka contoh CMD lainnya.
Francois
terima kasih atas tindak lanjutnya. Saya berakhir dengan shell yang ditinggikan karena lingkungan pengembangan saya memerlukan admin-mode untuk alat lain (Visual Studio), jadi saya menjalankan seluruh shell saya yang ditinggikan. Saya pikir saya akan mengeksplorasi hanya meninggikan alat yang membutuhkannya.
Scott Wegner
1
@ScottWegner Saya pribadi menggunakan Cmder (versi lengkap bahkan menyertakan msysgit). Ini memungkinkan instance CMD, bash, atau Kerang lainnya, di jendela unik dengan tab. Anda dapat meluncurkan beberapa tab dalam mode admin dan yang lain dalam mode normal. Saya biasanya memiliki satu tab yang didedikasikan untuk git dan tab lain untuk alat saya yang lain. Mungkin Anda akan tertarik untuk mencobanya. Ini alat yang hebat!
Francois
re: admin mode - saya pikir triknya adalah shell dan sublim Anda harus menggunakan hak yang sama. yaitu jika Anda menjalankan terminal Anda ditinggikan dan sublim juga terangkat berfungsi dengan baik.
Joseph Evensen
5

Saya baru saja berhasil membuatnya dengan bantuan PowerShell (alat baris perintah untuk windows, yang juga dapat digunakan sebagai baris perintah default pada GithubforWindows)

Cukup buat folder "WindowsPowerShell" di "C: \ Users \% username% \ My Documents". Kemudian, buat file bernama "profile.ps1". Pastikan Anda memiliki ekstensi file yang benar, .ps1 dan bukan .txt. di dalam profile.ps1, masukkan baris ini untuk menetapkan perintah alias:

Set-Alias subl 'c:\program files\sublime text 2\sublime_text.exe'

Pastikan direktori luhur di mesin Anda sudah benar. Anda juga dapat melihat detail konfigurasi di sini .

Sekarang, saya dapat mengedit file dengan Sublime Text 2 melalui perintah PowerShell hanya dengan mengetik:

subl filename

Semoga ini bermanfaat ...

rwinzhang
sumber
4
Untuk membuka folder saat ini di Sublime Text 2, Anda dapat menggunakan: subl .
awayken
Untuk Sublime Text 3, gunakan subl.exe baru:Set-Alias subl 'c:\program files\sublime text 3\subl.exe'
wtjones
3

Saya menghadapi masalah yang sama dengan git editor di Windows malam ini, dan akhirnya saya mendapatkannya.

Anda harus mengatur jalur editor Anda dengan sintaks bash dan menggunakan format DOS 8.3 untuk menghindari spasi :

Ini tidak berfungsi (untuk saya):

git config --global core.editor "C://Program files/Sublime Text/sublime_text.exe"

Ini lakukan:

git config --global core.editor /C/PROGRA~1/SUBLIME~1/sublime_text.exe

Anda bisa mendapatkan nama DOS 8.3 untuk direktori dengan dir / x

Diego Buendia
sumber
1

Saya hanya berjuang dengan ini untuk beberapa alasan, tidak ada contoh di atas yang cukup berhasil untuk saya. Namun ini adalah solusi saya:

 git config --global core.editor "'c:/<path to sublime>/sublime_text.exe' -w $*"

Anda secara khusus membutuhkan di ' 'sekitar jalan dan $*di akhir argumen, semua dalam " ".

justin.m.chase
sumber
1

Jika Anda Pengguna Mac, maka berikut ini caranya:

git config --global core.editor '/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
mainframer
sumber
1

baik, saya punya beberapa kesulitan untuk memanggil notepad ++ dari gitbash bahkan setelah menetapkannya sebagai core.editor saya.

saya menyelesaikan semuanya dengan menambahkan baris di bawah ini ke file .bashrc saya di direktori instalasi gitbash saya.

alias npp='winpty "C:/Program Files (x86)/Notepad++/notepad++.exe"'

jadi, saya bisa memanggil notepad ++ dengan alias "npp". Saya merasa ini dapat membantu Anda jika Anda mengubah direktori ke masing-masing editor yang ingin Anda gunakan.

OLATOMIDE
sumber
1

Untuk Pengguna MAC, saya dapat mengatakan untuk Sublime menggunakan yang berikut:

Pertama Periksa file .gitconfig menggunakan perintah:

  1. cd ~
  2. ls -la
  3. cat .gitconfig

Sekarang orang dapat menambahkan konfigurasi ini:

git config --global core.editor "subl -n -wl1"

Di mana l1akan memberitahu untuk memulai pada baris 1.

bvmCoder
sumber
0

Untuk Windows 7, saya menemukan solusi berikut berfungsi:

git config --global core.editor "C:/Program\ Files/Sublime\ Text\ 2/sublime_text.exe -n -w"
tscott1
sumber
0

Pada Windows, jika Anda menginstal git, Anda dapat memilih editor lain dan memberikan baris perintah berikut. C: \ Program Files \ Sublime Text 3 \ sublime_text.exe -w Gambar Pemasang

Xavier John
sumber
0

Saya belum melihat contoh pembaruan apa pun tentang Windows yang memungkinkan instalasi Git untuk secara aktif memilih Sublime Text sebagai editor teks default Anda tanpa semua aturan yang lebih kuat dari kode penggantian asli ... Teks Sublim ditampilkan sebagai opsi dalam (kembali) instalasi Git

Angelfirenze
sumber
0

Pada MacOS (Mojave) di bawah ini berfungsi untuk saya untuk Sublime 3 :

git config --global core.editor "/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl -n -w"

Pratik Patel
sumber