Bagaimana mengkonfigurasi istilah Mac OS X sehingga git memiliki warna? [Tutup]


200

Saya telah melihat demo git Mac OS X online yang dikonfigurasi untuk memiliki banyak warna.

Misalnya, prompt-nya kuning, lsdirektori- nya ungu dan git diffoutput- nya ~ 4 warna (pink, hijau muda, merah, kuning pucat).

Bisakah Anda memberi tahu saya bagaimana cara mengkonfigurasi terminal Mac OS X untuk mencapai itu? Ini jelas Mac OS X Terminal.app, bukan iTerm.


3
Kecuali bahwa superuser.com masih dalam versi beta pribadi dan yinglcs mungkin tidak memiliki akses.
Fredrik

Apakah ada beberapa persyaratan pendaftaran Pengguna Super selain yang disebutkan di blog.stackoverflow.com/2009/07/… ?
las3rjock

3
Mungkin tidak, tetapi berapa banyak pengguna yang tahu tentang itu? Ini tidak seperti ada tautan ke pos di superuser.com yang ditemukan oleh pengguna yang dimigrasi pertanyaannya ketika dia sampai di sana (jika ya, saya tidak dapat menemukannya).
Fredrik

3
Namun pertanyaan bermanfaat lainnya telah ditutup. Untungnya tidak sebelum beberapa orang bisa menjawab.
Ben Thurley

1
Sudah mapan sekarang bahwa pertanyaan Git adalah pada topik; @ Penutupan casperOne di sini salah, dan saya memilih untuk membuka kembali.
Mark Amery

Jawaban:


391

Jawaban William Purcell hanya memungkinkan warna untuk perintah 'git diff'. Lakukan ini untuk mengaktifkan warna untuk semua perintah git:

$ git config --global color.ui true

Apa yang saya butuhkan. Terima kasih.
jffgrdnr

1
Kesempurnaan murni. Terima kasih Pak.
Brandon Buck

1
atau Anda dapat memeriksa pilihan alternatif yang lebih kaya ini di sini: gist.github.com/trey/2722934
Yannis Dran

@yinglcs, sudah terima jawaban ini, ya ?!
Eliran Malka

ini tidak berfungsi
KansaiRobot

57

Untuk menampilkan warna pada output git diff, Anda perlu mengkonfigurasi git. Coba jalankan

$ git config --global color.diff true

untuk mengatur $ HOME / .gitconfig Anda dengan tepat.


William, Ya! Ini yang saya lewatkan.
avernet

terima kasih, ini berfungsi sempurna!
antiqe

13

Biasanya bukan sesuatu yang Anda konfigurasikan untuk dilakukan terminal ... Terminal tidak mengetahui apa yang ditampilkan tetapi coba ini di shell Anda (jika Anda menggunakan bash, di beberapa shell lain Anda tidak mengekspor tetapi panggil setenv atau sesuatu yang lain):

export CLICOLOR=1
export TERM=xterm-color

Anda kemudian dapat menggunakan generator LSCOLORS untuk menyiapkan sesuatu yang dapat Anda ekspor menggunakan sesuatu seperti:

export LSCOLORS=fxfxcxdxbxegedabagacad

(di atas akan memberi Anda direktori ungu)

Setelah selesai dan puas dengan hasilnya, tambahkan tiga baris ke file / etc / bashrc Anda atau .bashrc di direktori home pengguna Anda.

Sunting: Juga, di terminal Anda, pastikan kotak centang "Tampilkan warna ANSI" (pada halaman "Teks") dicentang.


.bashrc juga berfungsi? Di mac saya .bash_profile, saya tahu itu .bashrc di Linux tapi saya pikir itu berbeda pada mac dengan seluruh BSD (Juga LSCOLORS berbeda di Linux dan BSD / Mac, sepertinya).
Jorge Israel Peña

.bashrc bekerja untuk saya ... Dan ya, itu berbeda. gls menggunakan LS_COLORS (yang juga dapat dibuat menggunakan halaman yang ditautkan)
Fredrik

Terima kasih. Tetapi bagaimana kita bisa mengkonfigurasi ke warna seperti 'gandum', 'ungu' di prompt atau ls output? atau 'pink' di output 'git diff'. Terima kasih.
yinglcs

Warna yang mungkin adalah yang dapat Anda temukan di situs yang saya tautkan, itu adalah bagian dari standar dan ketika mereka mendefinisikannya Anda senang jika Anda memiliki terminal yang mampu menampilkan 16 warna.
Fredrik

13

Inilah yang saya gunakan dalam file profil saya. Bekerja seperti pesona karena memungkinkan saya untuk melihat cabang git saat ini dan juga keadaan melalui warna. Jika Anda ingin memodifikasinya, harap perhatikan bahwa penting untuk menghindari kode warna untuk menghindari masalah umpan baris dalam antrean panjang.

# Setting GIT prompt
c_cyan=`tput setaf 6`
c_red=`tput setaf 1`
c_green=`tput setaf 2`
c_sgr0=`tput sgr0`

branch_color ()
{
    if git rev-parse --git-dir >/dev/null 2>&1
    then
        color=""
        if git diff --quiet 2>/dev/null >&2 
        then
            color=${c_green}
        else
            color=${c_red}
        fi
    else
        return 0
    fi
    echo -n $color
}

parse_git_branch ()
{
    if git rev-parse --git-dir >/dev/null 2>&1
    then
        gitver="["$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')"]"
    else
        return 0
    fi
echo -e $gitver
}

#It's important to escape colors with \[ to indicate the length is 0
PS1='\u@\[${c_red}\]\W\[${c_sgr0}\]\[\[$(branch_color)\]$(parse_git_branch)\[${c_sgr0}\]$ '

File profil mana yang Anda sebutkan?
Darshan Puranik

@ DarhanPurani, saya bermaksud mengatakan .profilefile dalam $ bash saya
Marc M

2

Buka aplikasi terminal, lalu buka dialog preferensi baik melalui menu (Terminal -> Preferences) atau dengan menekan Command+ ,. Setelah dialog preferensi terbuka, pilih gaya terminal dari panel di sebelah kiri, pilih Teks dari bilah tombol, daripada pastikan kotak centang "Tampilkan warna ANSI" dicentang.

Itu akan memungkinkan warna pada terminal. Untuk mendapatkan warna dalam output pada terminal, Anda harus menanamkan perintah warna ANSI dalam data yang dikirim ke terminal. Cara ini dilakukan tergantung pada perintah. Sebagai contoh (seperti yang ditunjukkan di atas) lsperintah memiliki opsi warna. Untuk kode warna, lakukan pencarian google untuk "ansi color".


Perhatikan bahwa pertanyaan sudah ditutup sebagai topik yang tidak dibahas. :)
Ryan Kohn

0

Untuk keluaran ls berwarna, saya akan merekomendasikan menginstal gnu coreutils dan menggunakan versi ls sebagai gantinya. Untuk salah satu versi ls Anda harus memberikan flag yang benar, yaitu --color untuk versi gnu atau -G untuk versi OS X standar. Jadi Anda bisa melakukan sesuatu seperti

alias ls='ls --color'

di .bashrc Anda.

Untuk memberi warna pada permintaan Anda, Anda harus menggunakan kode warna yang benar untuk terminal Anda, tetapi saya menggunakan

PROMPT="$(print '%{\e[0;38m%}%{\e[1;1m%]%}[%m:%c] %n%%%{\e[0m%}') "

untuk menghasilkan

[hostname:directory] username%

dalam warna putih tebal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.