터미널의 Theme와 Plugin을 사용하기 위해 iTerm2와 Oh My Zsh를 설치해보자.
iTerm2 설치하기
iTerm2는 맥의 기본 터미널 기능을 확장하여 커스텀 단축키나 스크립트, 화면 나누기 등 다영한 기능을 제공한다.
iTerm2 - macOS Terminal Replacement
iTerm2 by George Nachman. Website by Matthew Freeman, George Nachman, and James A. Rosen. Website updated and optimized by HexBrain
iterm2.com
iTerm2 Color Scheme에 들어가면 iTerm2의 다양한 Theme를 클론할 수 있다.
Oh My Zsh 설치하기
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
curl이 설치되어있을 때 위 명령어로 oh my zsh를 설치할 수 있다.
Powerlevel10k 테마 설정하기
아래 코드를 터미널에서 실행하여 powerlevel10k를 클론해준다.
git clone https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
깃 관련 명령어를 사용하려고 하니 xcrun: error: invalid active developer path (...) 와 같은 에러가 발생
해결법은 구글링을 하면 아주 쉽게 찾을 수 있지만 매번 업데이트때마다 발생하는 오류여서 블로그에 남겨두려고 한다.
해결법
터미널에 아래의 xcode-select 명령어를 이용해서 입력해주면 간단히 해결된다.
xcode-select --install
위의 명령어를 입력하면 짧은 시간이 흐른 뒤 소프트웨어가 설치되었다는 팝업과 함께 해결된다.
M1칩을 탑재한 새로운 맥(Big Sur)에서 Homebrew를 설치하려면
/bin/bash -c "$(curl -fsSL https://gist.githubusercontent.com/nrubin29/bea5aa83e8dfa91370fe83b62dad6dfa/raw/48f48f7fef21abb308e129a80b3214c2538fc611/homebrew_m1.sh)"
위의 명령어를 실행하시면 됩니다.
또는 iterm이나 Terminal에서 이전의 방법대로
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
위의 명령어를 이용해 Homebrew를 설치한 뒤 brew help 등 명령어를 실행하게 되면,
zsh: command not found: brew
이런 에러가 발생합니다. 이때, 터미널 바로 위쪽에 표시된
eval $(/opt/homebrew/bin/brew shellenv)
를 입력해주면,
다음과 같이 정상적으로 작동하는 것을 알 수 있습니다.
터미널을 켤 때마다 homebrew가 자동으로 실행되게 하고 싶다면,
vi ~/.zshrc로 들어가서 마지막 줄에
eval $(/opt/homebrew/bin/brew shellenv)
이렇게 변수를 추가한 뒤, :wq 명령어로 저장하고 나오면 됩니다.
Powerlevel10k 테마 설정하기
아래 코드를 터미널에서 실행하여 powerlevel10k를 클론해준다.
git clone https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
powerlevel10k 수동 설정창을 연다
source ~/powerlevel10k/powerlevel10k.zsh-theme
위와 같이 설정을 모두 해주고 나면 powerlevel10k를 이용할 수 있다.
+ color / emoji
# curl이 설치되어 있지 않은 경우
brew install curl
# util이라는 이름의 directory를 생성하고 이동
mkdir util && cd util
# snazzy color theme를 download
# 만약 다른 color 테마를 다운로드 할 경우 curl -LO 이후에 해당 URL을 넣으면 됨
curl -LO https://raw.githubusercontent.com/mbadolato/iTerm2-Color-Schemes/master/schemes/Snazzy.itermcolors
이제 iterm preferences를 열어서 profiles -> colors를 들어갑니다. (또는 단축키 ⌘ + ,)
그리고 우측 하단에 color presets를 누른 후 import를 선택하여서 방금 전에 다운받은 snazzy 테마를 설정해줍니다.
🏖 Theme 변경하기
이번엔 iTerm2의 터미널 테마를 변경하도록 하겠습니다. 여기서 사용할 테마는 agonster라는 테마로 현재 checkout중인 branch를 쉽게 알 수 있는 테마입니다.
agonster
iTerm2에 vi ~/.zshrc를 입력합니다. 꼭 vi가 아니더라도 자신이 사용하는 에디터를 사용해서 해당 파일을 수정하셔도 상관없습니다.
해당 파일에 접근해보면 아래의 이미지와 같이 ZSH_THEME라는 항목을 찾으실 수 있는데, 이 부분으로 이동하신 다음 i를 눌러서 수정모드로 변경한 다음 agnoster로 변경해주도록 합니다. 이후 esc를 누른 후에 :wq! 라는 명령어를 입력해서 저장후 종료하도록 합니다.
🏖 Font 변경하기
이후로 폰트를 바꿔주도록 하겠습니다. 저는 Naver D2 font를 선호하기 때문에 아래의 링크에서 다운로드하도록 하겠습니다.
naver/d2codingfont
D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.
github.com
그리고 iTerm preference에서 이번엔 Text 탭으로 들어가서 font를 방금 다운로드한 D2 font로 변경해줍니다.
🏖 터미널에 사용자 이름 삭제하기
터미널에 사용자 이름을 사용하는 나타내는 영역이 매우 길기 때문에 이 부분을 아래와 같이 사용자이름을 제외한 다른 영역을 지워주도록 하겠습니다.
vi ~/.zshrc를 한 이후에 아래 코드를 추가해줍니다.
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
🏖 New Line 적용하기
터미널의 명령어가 길어지다 보면 화면을 벗어나는 경우가 있다. 이러한 경우 터미널 입력 어를 new line으로 입력함으로 불편을 해소할 수 있습니다.
agnoster 테마를 설치한 기준으로 쉘에 아래의 명령어를 입력해줍니다.
vi ~/.oh-my-zsh/themes/agnoster.zsh-theme
그 후 아래를 내려가다가 build_prompt()를 찾습니다. 그리고 prompt_newline을 prompt_hg와 promt_end사이에 넣어줍니다.
build_prompt() {
RETVAL=$?
prompt_status
prompt_virtualenv
prompt_context
prompt_dir
prompt_git
prompt_bzr
prompt_hg
prompt_newline //이부분을 추가 꼭 순서 지켜서
prompt_end
}
그리고 코드의 제일 하단에 내려가서 prompt_newline() 에 대한 기능을 정의하는 코드를 입력해줍니다.
prompt_newline() {
if [[ -n $CURRENT_BG ]]; then
echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR
%{%k%F{blue}%}$SEGMENT_SEPARATOR"
else
echo -n "%{%k%}"
fi
echo -n "%{%f%}"
CURRENT_BG=''
}
🏖 Syntax Highlight 적용 (option)
syntax highlight는 사용 가능한 명령어들에 highlight를 넣어주는 기능입니다.
iTerm2에 다음과 같은 명령어를 입력합니다.
# brew를 통해 설치해줍니다.
brew install zsh-syntax-highlighting
# ~/.zshrc에 들어가서 아래의 코드를 입력해줍니다.
vi ~/.zshrc
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
🏖 쉘에 이모티콘 적용하기
위의 이미지를 보면 쉘에 사용자 이름 옆에 이모티콘이 나타나는 것을 볼 수 있다. 해당 기능을 사용하는 방법을 알아보겠습니다.
역시나 vi ~/.zshrc 명령어로 에디터를 열어줍니다. 그리고 가장 하단에 아래의 코드를 삽입한 후에 {하고싶은이름} 부분을 원하는 텍스트로 바꾸도록 합니다. 저의 경우엔 noah로 변경하였습니다.
prompt_context() {
# Custom (Random emoji)
emojis=("⚡️" "🔥" "🇰" "👑" "😎" "🐸" "🐵" "🦄" "🌈" "🍻" "🚀" "💡" "🎉" "🔑" "🚦" "🌙")
RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
prompt_segment black default "{하고싶은이름} ${emojis[$RAND_EMOJI_N]} "
}
이렇게 하면 터미널을 킬때마다 랜덤으로 위의 작성된 이모티콘이 적용됩니다. 또는 자기가 원하는 이모지만 나오도록 하려면 추가적으로 위의 코드에서 ${emojis[$RAND_EMOJI_N]} 부분을 자신이 원하는 이모지로 채워주시면 됩니다.
🏖 상태바 추가
iTerm2 하단에 아래와 같이 다양한 정보들을 출력시켜줄 수 있는 기능입니다.
- 상태바 활성: Preferences > Profiles > Session > Status bar enabled
- 상태바 위치 설정: Preferences > Appearance > Status bar location
🏖 추가 디자인
iTerm2에서 ⌘ + , 를 툴러서 Preference에 들어가도록 합니다. 그런 다음 아래의 추가적인 디자인을 적용해보겠습니다. 버전에 따라 옵션의 위치가 변경되고나 이름이 변경될 수 있습니다. 현재 포스팅은 3.4.4 버전을 기준으로 설명됩니다.
1. Title bar style
- Appearance > Theme: Minial
2. Title bar 밑에 1px 라인제거
- Appearance > Windows > Show line under title bar when the tab bar is not visible: 체크 안함
3. 폰트 크기 및 줄간격 변경
- Profiles > Text: 폰트사이즈 14로 변경
- Profiles > Text: n/n 줄간격 110으로 변경
4. Margin 수정
- Appearance > Panes > Side margins: 12
- Appearance > Panes > Top & bottom margins: 10
5. 탭 선 제거
- Advanced > In minimal theme, how prominent should the tab outline be?: 0
6. Unicode 설정
- Profiles > Text > Unicode normalization form: NFC
🧑🏻💻 참고 출처
- https://medium.com/harrythegreat/oh-my-zsh-iterm2%EB%A1%9C-%ED%84%B0%EB%AF%B8%EB%84%90%EC%9D%84-%EB%8D%94-%EA%B0%95%EB%A0%A5%ED%95%98%EA%B2%8C-a105f2c01bec
- https://fernando.kr/15?fbclid=IwAR0y4sc8UYhcVLvU6HsgYhSIv1UkRWxq3MIpB1Gw6Pua55Z93O8uTR3yy00
- subicura.com/2017/11/22/mac-os-development-environment-setup.html
'+++팁+++' 카테고리의 다른 글
오라클클라우드 스프링 플젝 올리기 feat. mysql,filezilla (0) | 2022.02.11 |
---|---|
m1 mysql 재설치 feat. homebrew (0) | 2022.02.11 |
자바) 인터파크 도서 openapi json응답 피싱하기 (0) | 2022.01.30 |
SQL 정리 (0) | 2022.01.29 |
몬터레이 파티션 설치 (0) | 2022.01.20 |