วิธีกำหนดค่าคำศัพท์ Mac OS X เพื่อให้คอมไพล์นั้นมีสีได้อย่างไร [ปิด]


200

ฉันเคยเห็นตัวอย่างการสาธิต Mac OS X คอมไพล์ออนไลน์ซึ่งมีการกำหนดค่าให้มีหลายสี

ตัวอย่างเช่นพรอมต์ของเขาคืออำพันlsไดเรกทอรีของเขาเป็นสีม่วงและgit diffผลลัพธ์ของเขามี ~ 4 สี (ชมพู, เขียวอ่อน, แดง, เหลืองอ่อน)

คุณบอกฉันได้อย่างไรว่าฉันจะกำหนดค่าเทอร์มินัล Mac OS X เพื่อให้บรรลุผลนั้น แน่นอนว่าเป็น Mac OS X Terminal.app ไม่ใช่ iTerm


3
ยกเว้น superuser.com นั้นยังอยู่ในรุ่นเบต้าส่วนตัวและ yinglcs อาจไม่มีสิทธิ์เข้าถึง
Fredrik

มีข้อกำหนดการลงชื่อสมัครใช้เบต้าผู้ใช้ขั้นสูงนอกเหนือจากที่ระบุไว้ในblog.stackoverflow.com/2009/07/หรือไม่?
las3rjock

3
อาจไม่ได้ แต่มีผู้ใช้กี่คนที่รู้เรื่องนี้ มันไม่เหมือนมีลิงก์ไปยังโพสต์นั้นใน superuser.com ที่ผู้ใช้ที่ได้รับคำถามโยกย้ายจะพบเมื่อเขาไปถึงที่นั่น (ถ้าเป็นฉันไม่สามารถหาได้)
Fredrik

3
อีกคำถามที่เป็นประโยชน์ปิด ไม่ใช่ก่อนที่คนบางคนจะตอบได้
Ben Thurley

1
เป็นที่ยอมรับแล้วในตอนนี้ว่าคำถาม Git นั้นอยู่ในหัวข้อ การปิด @ casperOne ของที่นี่ผิดและฉันลงคะแนนให้เปิดใหม่อีกครั้ง
ทำเครื่องหมาย Amery

คำตอบ:


391

คำตอบของ William Purcellเปิดใช้งานสีสำหรับคำสั่ง 'git diff' เท่านั้น ทำสิ่งนี้เพื่อเปิดใช้งานสีสำหรับคำสั่ง git ทั้งหมด:

$ git config --global color.ui true

สิ่งที่ฉันต้องการ ขอบคุณ
jffgrdnr

1
ความสมบูรณ์แบบบริสุทธิ์ ขอบคุณครับ
Brandon Buck

1
หรือคุณสามารถตรวจสอบตัวเลือกที่สมบูรณ์ยิ่งขึ้นได้ที่นี่: gist.github.com/trey/2722934
Yannis Dran

@yinglcs ยอมรับคำตอบนี้แล้วจะได้ไหม!
Eliran Malka

สิ่งนี้ใช้ไม่ได้
KansaiRobot

57

ในการแสดงสีในเอาต์พุตของ git diff คุณต้องกำหนดค่า git ลองวิ่ง

$ git config --global color.diff true

เพื่อตั้งค่า $ HOME / .gitconfig ของคุณอย่างเหมาะสม


วิลเลียมใช่แล้ว! นี่คือสิ่งที่ฉันหายไป
avernet

ขอบคุณมันใช้งานได้สมบูรณ์แบบ!
antiqe

13

ปกติแล้วมันไม่ใช่สิ่งที่คุณกำหนดค่าเทอร์มินัลให้ทำ ... เทอร์มินัลไม่รู้ว่ามันกำลังแสดงอะไร แต่ลองใช้มันในเชลล์ของคุณ (ถ้าคุณใช้ bash ในเชลล์อื่น ๆ ที่คุณไม่ได้ส่งออก แต่เรียก setenv หรือ อื่น ๆ อีก):

export CLICOLOR=1
export TERM=xterm-color

จากนั้นคุณสามารถใช้ตัวสร้าง LSCOLORSเพื่อตั้งค่าสิ่งที่คุณสามารถส่งออกโดยใช้สิ่งที่ต้องการ

export LSCOLORS=fxfxcxdxbxegedabagacad

(ข้างต้นควรให้ไดเรกทอรีสีม่วง)

เมื่อเสร็จแล้วและพอใจกับผลลัพธ์ให้เพิ่มสามบรรทัดลงในไฟล์ / etc / bashrc ของคุณหรือไฟล์. bashrc ในโฮมไดเร็กตอรี่ของผู้ใช้

แก้ไข:นอกจากนี้ในเทอร์มินัลของคุณให้ตรวจสอบว่าได้เลือกช่องทำเครื่องหมาย "แสดง ANSI สี" (ในหน้า "ข้อความ")


.bashrc ทำงานด้วยหรือไม่ สำหรับ mac ของฉันคือ. bash_profile ฉันรู้ว่ามันเป็น. bashrc บน Linux แต่ฉันคิดว่ามันแตกต่างกันใน mac กับสิ่ง BSD ทั้งหมด (เช่น LSCOLORS นั้นแตกต่างกันใน Linux และ BSD / Mac ดูเหมือน)
Jorge Israel Peña

.bashrc ใช้งานได้สำหรับฉัน ... และใช่มันแตกต่างกัน gls ใช้ LS_COLORS (ซึ่งสามารถสร้างได้โดยใช้หน้าที่ลิงก์ไปยัง)
Fredrik

ขอบคุณ แต่เราจะกำหนดค่าให้สีเช่น 'ข้าวสาลี', 'สีม่วง' ในพรอมต์หรือ ls ได้อย่างไร หรือ 'สีชมพู' ในเอาต์พุต 'git diff' ขอบคุณ.
yinglcs

สีที่เป็นไปได้คือสีที่คุณสามารถพบได้ในเว็บไซต์ที่ฉันเชื่อมโยงกับมันเป็นส่วนหนึ่งของมาตรฐานและเมื่อพวกเขากำหนดว่าคุณมีความสุขถ้าคุณมีเครื่องที่สามารถแสดง 16 สีได้
Fredrik

13

นี่คือสิ่งที่ฉันใช้ในไฟล์. profile ของฉัน ทำงานเหมือนมีเสน่ห์เพราะมันทำให้ฉันเห็นสาขา git ปัจจุบันและสถานะของมันผ่านสี หากคุณต้องการแก้ไขโปรดทราบว่าการหลีกเลี่ยงรหัสสีเพื่อหลีกเลี่ยงปัญหาการป้อนบรรทัดในบรรทัดยาวเป็นสิ่งสำคัญ

# 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}\]$ '

ไฟล์ใดที่คุณกล่าวถึง
Darshan Puranik

@DarshanPurani ผมหมายถึงการพูด.profileไฟล์ใน $ ทุบตีฉัน
มาร์ค M

2

เปิดแอปเทอร์มินัลจากนั้นเปิดกล่องโต้ตอบการตั้งค่าผ่านทางเมนู (เทอร์มินัล -> การตั้งค่า) หรือโดยกดCommand+, +เมื่อกล่องโต้ตอบการตั้งค่าเปิดขึ้นให้เลือกรูปแบบเทอร์มินัลจากบานหน้าต่างด้านซ้ายเลือกข้อความจากแถบปุ่มกว่าตรวจสอบให้แน่ใจว่าได้เลือกช่องทำเครื่องหมาย "แสดงสี ANSI"

ที่จะเปิดใช้งานสีบนเทอร์มินัล ในการรับสีในเอาต์พุตบนเทอร์มินัลคุณจะต้องฝังคำสั่งสี ANSI ในข้อมูลที่ส่งไปยังเทอร์มินัล วิธีการทำสิ่งนี้ขึ้นอยู่กับคำสั่ง ตัวอย่างเช่น (ดังที่แสดงด้านบน) lsคำสั่งมีตัวเลือกสี สำหรับรหัสสีให้ทำการค้นหา google สำหรับ "ansi color"


โปรดทราบว่าคำถามถูกปิดเป็นหัวข้อปิดแล้ว :)
Ryan Kohn

0

สำหรับการแสดงผล ls สีผมแนะนำให้ติดตั้ง gnu coreutils และใช้ ls รุ่นนั้นแทน สำหรับ ls ทั้งสองรุ่นคุณจะต้องผ่านการตั้งค่าสถานะที่ถูกต้องซึ่งก็คือ --color สำหรับรุ่น gnu หรือ -G สำหรับรุ่น OS X มาตรฐาน ดังนั้นคุณสามารถทำสิ่งที่ชอบ

alias ls='ls --color'

ใน. bashrc ของคุณ

ในการแจ้งสีของคุณคุณจะต้องใช้รหัสสีที่ถูกต้องสำหรับเครื่องของคุณ แต่การใช้งานของฉัน

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

ผลิต

[hostname:directory] username%

ตัวหนาสีขาว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.