Ubah editor default untuk file yang dibuka di terminal? (misalnya, setel ke TextEdit / Coda / Textmate)

110

Apakah ada cara untuk membuat file dibuka untuk diedit di terminal terbuka di Textedit sebagai gantinya?

Misalnya, di mana sebuah perintah mungkin membuka file untuk diedit (seperti git commit), alih-alih membuka file itu di vim atau emacs, itu akan terbuka di Textedit (atau mungkin aplikasi pengeditan teks lain yang Anda pilih, seperti Coda atau Sublime).

Dan sebagai pertanyaan bonus, adakah cara untuk secara khusus mengkonfigurasi git agar secara otomatis membuka file yang dibuat setelah berjalan git commitdi editor dari direktori aplikasi?

Diogenes
sumber
1
Ya, saya menggunakan OSX (10.6.4).
Diogenes
Solusi terbaik yang saya temukan adalah menggunakan duti-> apple.stackexchange.com/a/123954/58507
Gomino
untuk mac os 10.10+ solusi di atas tidak akan berfungsi. Coba apple ini.stackexchange.com/questions/123833/…
Rishikesh Shukla

Jawaban:

137

Sebagian besar program akan memeriksa $EDITORvariabel lingkungan, sehingga Anda dapat mengaturnya ke jalur TextEdit di bashrc Anda. Git akan menggunakan ini juga.

Bagaimana cara melakukannya:

  • Tambahkan berikut ini ke ~/.bashrcfile Anda :
    export EDITOR="/Applications/TextEdit.app/Contents/MacOS/TextEdit"
  • atau cukup ketik perintah berikut ke Terminal Anda:
    echo "export EDITOR=\"/Applications/TextEdit.app/Contents/MacOS/TextEdit\"" >> ~/.bashrc

Jika Anda menggunakan zsh, gunakan ~/.zshrcsebagai pengganti ~/.bashrc.

alternatif
sumber
20
Sempurna, ini berhasil. Saya juga menjalankan perintah ini untuk memastikan git berfungsi seperti yang saya harapkan. Ini git config --global --unset-all core.editorkemudian git config --global --add core.editor "open -W -n".
Diogenes
Apakah Anda menggunakan shell yang berbeda?
alternatif
5
dalam kasus saya, saya menggunakan zshjadi jelas saya perlu memperbarui .zshrcfile konfigurasi.
Malloc
3
gunakan tanda kutip jika jalur ke editor Anda memiliki spasi, misalnya "echo "export EDITOR=\"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl\"" >> ~/.bashrc" Dan Anda mungkin harus memuat ulang .bashrc Anda dengan:source ~/.bashrc
Mars Redwyne
Terima kasih, saya telah menetapkan editor nano sebagai default dengan ini. Berikut cara menambahkannya ke OSX: http://hints.macworld.com/article.php?story=20021017065800302
Micer
28

Gunakan git config --global core.editor mate -watau git config --global core.editor openseperti yang disarankan @dmckee di komentar.

Referensi: http://git-scm.com/docs/git-config

Ionuț G. Stan
sumber
3
... dan menyetelnya untuk digunakan openberarti Anda secara otomatis mendapatkan default finder. Jadi perubahan di finder disebarkan secara alami.
dmckee --- kucing mantan moderator
4
openmenggunakan Layanan Peluncuran untuk menentukan jenis file, sebagian besar berdasarkan ekstensinya. Jika file memiliki ekstensi yang tidak diketahui, itu akan gagal untuk membuka file tersebut. Umumnya, editor CLI Anda haruslah sesuatu yang mengasumsikan file teks ...
Gordon Davisson
Beberapa instruksi (sangat) eksplisit akan sangat membantu ... rujukannya sangat singkat.
Diogenes
2
@Diogenes: Lihat jawaban saya di pos lain jika Anda masih membutuhkan bantuan yang lebih eksplisit: stackoverflow.com/questions/6435246/…
X-Istence
4
Lebih baik git config --global core.editor "open -W"(jika tidak, Anda akan mendapatkan Aborting commit due to empty commit message.kesalahan).
rsenna
18

Untuk OS X dan Sublime Text

Sediakan subl.

Masukkan ini ~/.bash_profile

[[ -s ~/.bashrc ]] && source ~/.bashrc

Masukkan ini ~/.bashrc

export EDITOR=subl
Kirk Strobeck
sumber
Saya menemukan bahwa ini tidak berfungsi dengan benar chsh. File terbuka, tetapi setiap perubahan hilang. Saya harus menggunakan chsh -s /bin/zshuntuk mengganti cangkang secara manual.
Cryptc
9

Untuk siapa pun yang datang ke sini di tahun 2018:

  • pergi ke iTerm -> Preferensi -> Profil -> Lanjutan -> Sejarah Semantik
  • dari menu dropdown, pilih Open with Editor dan dari dropdown kanan pilih editor pilihan Anda
Alexander
sumber
5

Atur editor Anda untuk mengarahkan ke program ini:

/Applications/TextEdit.app/Contents/MacOS/TextEdit

Dengan SVN, Anda harus menyetel SVN_EDITORvariabel lingkungan ke:

$ export SVN_EDITOR=/Applications/TextEdit.app/Contents/MacOS/TextEdit

Dan kemudian, saat Anda mencoba melakukan sesuatu, TextEdit akan diluncurkan.

Pablo Santa Cruz
sumber
1
Saya lebih suka menggunakan /usr/bin/open, karena itu akan menggunakan default finder apa pun yang Anda setel.
dmckee --- ex-moderator anak kucing
Bagaimana Anda melakukan hal yang sama untuk git?
Diogenes
Suka pertama hanya mengatur EDITOR = untuk itu, tetapi apa yang saya ketik untuk baris kedua?
Pengguna
0

Jika Anda ingin editor bekerja dengan operasi git, pengaturan $EDITORvariabel lingkungan mungkin tidak cukup, setidaknya tidak dalam kasus Sublime - misalnya jika Anda ingin melakukan rebase, itu hanya akan mengatakan bahwa rebase berhasil, tetapi Anda menang ' t memiliki kesempatan untuk mengedit file dengan cara apa pun, git akan langsung menutupnya:

git rebase -i HEAD~
Successfully rebased and updated refs/heads/master.

Jika Anda ingin Sublime bekerja dengan benar dengan git, Anda harus mengkonfigurasinya menggunakan:

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

Saya datang ke sini mencari ini dan menemukan solusinya dalam inti ini di github .

mrapacz.dll
sumber
0

jadikan Sublime Text 3 sebagai editor teks default Anda: (Perlu dimulai ulang)

defaults write com.apple.LaunchServices LSHandlers -array-add "{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.sublimetext.3;}"

buat luhur maka editor teks git default Anda git config --global core.editor "subl -W"

Ashutosh Mittal
sumber