끄적 끄적

[Iterm] Iterm 터미널 커스텀

냄수 2021. 1. 2. 16:32
반응형

터미널을 이쁘게 커스텀 해볼거에요

 

이 과정을 하기전에

https://github.com/ohmyzsh/ohmyzsh

에서 omyzsh를 먼저 설치해야해요

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

https://github.com/ohmyzsh/ohmyzsh/wiki/themes

를 찾아봐서 다른 테마를 정해도 돼요

 

전 인기가좋은 agnoster를 사용했기때문에 이테마를 기준으로 설명을하구요

 

 

터미널에서 vi편집기로 ~/.zshrc위치에 있는 파일을 열어주세요

전 기본 루트가 ~여서 바로 .zshrc로 접근했어요

vi .zshrc

 

vi를 사용하실줄 모르신다면

현재창에서 영어로 i를 누르면

터미널 밑에 위 그림과같이 INSERT모드로 변경되고

입력할 수  있고

저장할 땐

esc키를 누르고 :wq 를 입력하고 엔터를 눌러주세요

w(저장후) q(나간다) 라는 명령어에요

 

 

테마변경

이쪽 이름을 깃허브링크에있는 테마를 보고 골라서 써주시면 되구요

저장하고 다시 터미널을 껏다가 키면 변경사항이 적용돼요

껏다키면 폰트가깨져잇을텐데

 

https://github.com/powerline/fonts

폰트설치를 해줘야해요

 

색변경은

이창에서 색을 변경해서 원하는 색으로 꾸며보세요

 

 

명령어 하이라이트 및 명령어 자동완성

homebrew를 먼저설치하고

brew install zsh-syntax-highlighting
open ~/.zshrc

zshrc파일을 열어주고

제일밑에 2줄 코드를 붙여넣어주세요

 

m1기준으로 폴더명이달라요 그래서 

기존의 usr/local 경로는 먹히지않아요

// m1사용자
source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

// m1아닌경우
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

 

 

자동완성은

git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

파일을 클론받고

.zshrc파일안에

zsh-autosuggestions를 추가해주시면 끝이에요

 

이름줄이기

우선 이렇게 긴이름을 줄여볼거에요

쓸데없이 좀 기네요...

아래처럼 짧게!

 

다시 zshrc을 열고 아래코드를 추가해주세요

원하는위치에 삽입하면되는데

저는 알아보기쉽게 제일 밑에추가했어요

prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

여기까지하면

이름줄이기는 끝났어요

터미널을 끄고 키면 적용될거에요

 

 

이번엔 테마의 요소를 커스텀해볼거에요

 

 

새로운 개행

 

저는 agnoster 테마를 쓰고잇어서 아래와같은 경로에있는 설정파일에 접근해서 변경할 거구요

vi ~/.oh-my-zsh/themes/agnoster.zsh-theme

 

샬라샬라 되게 이상한 문법의 언어들이 나열되어있는데...

 

우선 아래와같이

새로운 행을 만들어줘서 깔끔하게 사용할 수 있는 방법이에요

아래의 코드를 어딘가에 붙여넣어주세요

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=''
}

그리고

prompt_newline 키워드를 아래의 위치에 추가해주세요

prompt_end는 주석처리해주세요

이유는 밑에서 설명해요

## Main prompt
build_prompt() {
  RETVAL=$?
  prompt_status
  prompt_virtualenv
  prompt_aws
  prompt_context
  prompt_dir
  prompt_git
  prompt_bzr
  prompt_hg
  prompt_newline   <<<<< ----- 추가
  #prompt_end      <<<<< ----- 주석처리
}

그러면 적용됬어요 ㅎㅎ

 

 

문득 스크립트언어를 분석해서 커스텀해보고 싶어졌어요... ㅎ

 

 

코드를보면

무슨 차이인가 궁금해서

SEGMENT_SEPARATOR가 많더라구요

유니코드를 나타내고잇네요

뭔지 검색해봤더니 표시할수 없나봐요..

터미널에서 입력할때 구분해주는 >보라색삼각형 이더라구요

>>>> 로 변경해봤더니 아래처럼 되네요

새로추가해준 코드에서 

blue -> red로 변경해봣는데

테마자체가 blue가 보라색으로 지정되어있어서

변경시 빨간색으로 변하구요

위 그림을보면

>>>> ~>>>>

에서 

SEPARATOR로 구현되있는걸 알수있고

디폴트가 NONE이라 맨앞에 >>>>는 현재는 없네요

%{%k%F{blue}%}$SEGMENT_SEPARATOR

는 임의의 배경색으로 개행시켜서 똑같이 나타내는 코드인거같네요

 

 

prompt_newline과

prompt_end의 코드가

비슷한데

저 개행부분만 다르더라구요

그러면 코드가 중복되는거 같은데..

적용되는건 newline이더라구요

그래서 주석처리해보니까

prompt_end가 없어도 아무런 지장이 없어요

 

 

CURRENT_FG는 해당 경로의 글자색을 나타내는 변수같네요

 

CURRENT_BG가 NONE이 기본인데 색을 줘봤는데

앞에 SEPARATOR가 나타나네요

코드 중간에 CURRENT_BG 색을 변경하는코드가 있을거같네요

>namsookim>~>

이렇게 3개의 SEPARATOR가 있는데

뒤의 색은 변하지가 않더라구여

어디서 바꿀까 찾으러가야죠 ㅎ

 

 

 

이부분은 

기본 이름을 변경할 수가 있는 곳이에요

abc를 추가한부분은 경로앞에

ef를 추가한곳엔 사용자의 이름앞에 붙네요

 

방금 손댄부분에 CURRENT_BG의 색을 변경해보니

잘 변경되네요

코드 어딘가에서 색을 변경해주고 있는것 같아요

반응형

'끄적 끄적' 카테고리의 다른 글

2022 회고  (0) 2023.01.01
[이미지 확장자] Vector? Raster? PNG, JPEG 뭐가 다를까?  (0) 2021.01.01