터미널을 이쁘게 커스텀 해볼거에요
이 과정을 하기전에
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 |