싱글 라인으로 작성할 때에 불편한 점
폴더 경로 및 폴더명과 브랜치명이 한 줄로 표현되고 있기에 폴더명이나 브랜치 명이 길어지게 되면 명령어를 입력하는 커서가 그만큼 오른쪽으로 밀려 가독성이 떨어지고 작성하는데에 불편함이 있었습니다.
터미널 창을 크게 키우는 방법도 있지만 듀얼 모니터가 아닌 단일 노트북만을 사용할 때 화면 공간에 제약이 있기에 이 방법은 100% 만족시키기 어려운 해결 방법인 것 같습니다.
따라서 터미널 창이 작더라도 개행을 하여 커맨드를 다음 줄에 입력하게 된다면 불편함이 줄어들 것 같아 다음 줄에 커맨드를 입력하는 방법을 공유해드리려고 합니다.
명령어 다음 줄에 입력하기 (싱글라인에서 멀티라인 적용하기)
먼저 아래 명령어를 입력하여 zsh 테마의 수정파일을 열어줍니다.
# agnoster 테마일 경우
vi ~/.oh-my-zsh/themes/agnoster.zsh-theme
# 다른 테마일 경우
vi ~/.oh-my-zsh/themes/(테마명).zsh-theme
커서를 맨 아래로 내리면 아래와 같은 코드가 있을 텐데 키보드의 i를 눌러 수정 모드로 진입 한 뒤 prompt_newline을 추가해줍니다.
(prompt_hg
와 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
}
그 후 터미널 맨 아래에 아래 코드를 복사하여 prompt_newline() 함수를 추가해준 후 ESC + :wq + ENTER를 눌러 저장하고 종료해줍니다.
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=''
}
터미널을 껐다가 다시 켜시거나 아래 명령어를 입력하시면 설정이 적용된 것을 확인하실 수 있습니다.
source ~/.zshrc
멀티라인을 적용하지 않아도 큰 문제는 없지만 사소하고 작은 불편함을 해결한다면 일의 능률이 조금이나마 올라가지 않을까 생각이 듭니다!
궁금한 점은 댓글 남겨주세요😁
⭐️ (참고) prompt_newline 함수 분석하기
설정 적용할 때 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=''
}
- iif [[ -n $CURRENT_BG ]]; then
- CURRENT_BG 변수가 비어있지 않은 경우를 확인합니다.
- [[ -n $CURRENT_BG ]]는 CURRENT_BG 변수가 비어있지 않으면 참(True)을 반환합니다.
- echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
- 조건문이 true일 경우 실행합니다.
- 프롬프트에 배경색과 세그먼트 구분자를 출력하는 역할입니다.
- %{%k%F{$CURRENT_BG}%}는 CURRENT_BG 변수에 저장된 배경색을 설정합니다. $SEGMENT_SEPARATOR는 세그먼트 구분자로 출력됩니다.
- %{%k%F{blue}%}$SEGMENT_SEPARATOR는 블루 컬러로 지정된 세그먼트 구분자를 출력합니다.
- echo -n "%{%k%}"
- 조건문이 false일 경우 실행됩니다.
- 기본 배경색으로 설정됩니다.
- fi
- bash 셸에서 조건문(if문)의 끝을 명시적으로 나타내는 예약어입니다.
- if 문은 if와 then으로 시작하고 조건을 나타내는 표현식이 true인 경우에 실행할 코드 블록이 들어옵니다. 이후 fi로 조건문을 닫아줍니다.
- echo -n "%{%f%}"
- 이전에 설정된 색상을 초기화합니다.
- URRENT_BG=''
- CURRENT_BG 변수를 비워서 초기화합니다.
'IT' 카테고리의 다른 글
데이터그립 DataGrip IDE 사용자 인터페이스(UI) 언어 변경하는 방법 (영어, 한국어, 중국어, 일본어 가능) (0) | 2023.07.12 |
---|---|
개발자라면 터미널부터 꾸며야지 - 맥북 터미널 꾸미기 (터미널에서 시각적으로 시스템 정보 확인하기) (0) | 2023.06.29 |
개발자라면 터미널부터 꾸며야지 - 맥북 터미널 꾸미기(oh my zsh 테마 적용하기) (0) | 2023.06.25 |
개발자라면 터미널부터 꾸며야지 - 맥북 터미널 꾸미기(폰트 설정하기) (0) | 2023.06.23 |
macOS 업데이트 이후 xcrun error가 발생한다면 이 방법으로 해결! (0) | 2023.06.23 |