Mac/Linux 환경에서 작업합니다.
`iTerm2 + ZSH + Oh-my-zsh` 터미널은 사용자 정의되어 조합하여 사용됩니다.
ZSH는 이제 MacBook의 기본 셸이므로 많은 사용자가 나와 유사한 환경을 사용한다고 가정하는 것이 안전합니다.
첫째, 기본 터미널 설정을 사용하면 터미널이 너무 평평해질 뿐만 아니라 가독성도 떨어집니다.
나는 개발 IDE에서 하는 것만큼 터미널에서 거의 많은 시간을 보내기 때문에 터미널 가독성은 생산성과 직접적인 관련이 있습니다.
따라서 단말기의 환경 설정도 상당히 민감합니다.
제가 사용하는 단말 환경 및 테마 적용에 대한 내용은 다음 글을 읽어주세요.
(관련 기사)
2020-06-01 – (IT역사/IT상식) – (Macbook) MacBook 단말기를 예쁘게 만들어보세요 – ZSH 초간단 설치 및 커스터마이징 (zhs + iTerm2)
2022-10-20 – (IT 스토리/IT 상식) – (MacOS – ZSH) 유용한 플러그인 2개 – 자동완성/하이라이트
ZSH 주제(불가지론자) 불편한 신청 결과 – 프롬프트가 너무 깁니다.
.
이 게시물의 내용은 “기본 테마 설정의 불편함”에 대해 논의하는 것입니다.
모든 개인의 취향을 만족시킬 수는 없기 때문에 아마도 그 중에서 가장 보편적일 것입니다.
다만, 계속 방해가 되는 부분이 있고, Terminal에서 “prompt” 표기에 대한 부분이 너무 유력하다.
주제는 좋지만 프롬프트가 너무 깁니다.
물론 미니멀에 충실한 테마도 많다.
먼저 ZSH 테마를 적용한 결과를 살펴보겠습니다.
기분이 어때?
첫째, 기본 단말기에 비해 가독성이 우수하다.
필요한 정보를 보기 쉽고 명령/문자열이 속성에 따라 분류되어 있어 보기가 매우 쉽습니다.
그 아래 프롬프트는 다음과 같이 구성됩니다.
(저는 Agnoster 테마를 적용했습니다.
다른 테마도 비슷할 것입니다.
)
(가상환경 이름) 사용자명@사용자PC이름 > 현재 Directory Path > Git Branch
프롬프트 중간에 많은 정보가 함께 던져지기 때문에 현재 상태를 한눈에 보기에 좋습니다.
다만, 위의 이미지에서 알 수 있듯이 “개인적”인 저로서는 불편한 점이 있습니다.
- 1) 단독으로 사용하는 Mac Book에서 모든 명령줄이 “user@PCname”이어야 합니까?
- 서버 환경에서 이것은 또한 매우 중요합니다.
`su -`를 사용하고 현재 루트 권한이 있는 경우 큰 문제가 발생할 수 있습니다.
- 서버 환경에서 이것은 또한 매우 중요합니다.
- 2) 정보를 제공하는 것은 좋지만 지금 명령줄의 공간이 너무 좁지 않습니까?
- git까지 사용하면 그 이후에는 공간이 훨씬 더 줄어듭니다.
- 명령줄이 다음 줄로 이동하는 것이 싫습니다.
다음 줄로 이동할 때 공백/입력 문자 차이로 인해 헷갈리거나 치명적인 오류가 발생할 수 있습니다.
- 때로는 모든 디렉토리 경로를 지정해야 하는지 궁금합니다.
- git까지 사용하면 그 이후에는 공간이 훨씬 더 줄어듭니다.
이 때문에 ZSH 테마 프롬프트를 변경해야 합니다.
ZSH 디자인 프롬프트 사용자 지정 – 프롬프트 표기 정보 변경
ZSH 프롬프트에 표시되는 정보를 사용자 지정하려면 다음 단계가 필요합니다.
1) 사용 중인 테마를 확인합니다.
(.zshrc 파일 확인)
2) 적용된 테마 파일(*.zsh 테마)에서 명령 프롬프트 출력 형식 변경
1) 적용된 테마(.zshrc) 확인
홈 디렉터리에 있는 .zshrc 파일을 엽니다.
확실하지 않은 경우 터미널을 열고 다음 명령 중 하나를 실행하십시오.
- ~/.zshrc 열기
- `나노 ~/.zshrc`
- `코드 ~/.zshrc`
맨 위에는 몇 줄 아래에 테마 설정이 있습니다.
다른 모든 회색 음영은 “주석”입니다.
제 경우에는 Agnoster 테마가 적용된 것을 확인할 수 있습니다.
(ZSH_THEME=”아그노스터”)
2) 테마별 설정 파일 변경 ( .zsh 테마 파일)
테마를 확인한 후 테마에 해당하는 설정 파일을 열어 편집합니다.
테마 파일은 `~/.oh-my-zsh/themes`에 테마와 파일 이름이 같고 확장자가 “.zsh-theme”인 파일로 저장됩니다.
예를 들어 저는 Agnoster 테마를 적용하고 있기 때문에 파일 위치는 다음과 같습니다.
- ~/.oh-my-zsh/themes/agnoster.zsh-테마
자신에게 맞는 것을 선택하면 .zsh 테마 파일을 보면 매우 복잡한 구조의 쉘 스크립트임을 알 수 있습니다.
하지만 자세히 보면 프롬프트를 구성하는 각 영역별로 기능이 세분화되어 있고, 색상과 내용을 설정하는 방법이 반복해서 설명되어 있습니다.
첫 번째 부분에서 각 영역이 정의되고 마지막에 각 영역이 요리되고 프롬프트가 생성됩니다.
하지만 자세히 보면 프롬프트를 구성하는 각 영역별로 기능이 세분화되어 있고, 색상과 내용을 설정하는 방법이 반복해서 설명되어 있습니다.
첫 번째 부분에서 각 영역이 정의되고 마지막에 각 영역이 요리되고 프롬프트가 생성됩니다.
이번 포스팅에서 변경할 부분은 명령프롬프트에서의 컨텍스트 입니다.
주석에 명시된 바와 같이 “컨텍스트”는 “user@hostname”으로 표현됩니다.
여기서 우리는 다음 표기법에 초점을 맞추고 수정합니다.
- %n : 사용자 이름(사용자 이름)
- %m: PC 이름(호스트 이름)
내 경우에는 세 가지를 테스트하고 내가 좋아하고 사용하는 것을 선택했습니다.
- %n@%m : 그대로 사용
- %n: 혼자 사용하는 MacBook의 PC 이름이 얼마나 중요합니까? 호스트 이름 제거
- : 사용자 이름과 호스트 이름 모두 불필요합니다.
필요한 것은 꽤 프롬프트입니다.
위의 3가지 경우 중 하나를 시도해보고 취향에 따라 선택할 수 있습니다.
또한 기본 설정에 따라 프롬프트 표시가 가능합니다.
재미삼아 별 모양을 넣었습니다.
앵콜 없이라도 좋을 텐데. 아시다시피 맥북 환경에서 “Ctrl + Command + 스페이스바”.입력하면 다양한 이모티콘을 입력할 수 있는 창이 열립니다.
︎☆︎ 〉 다음은 별 모양 프롬프트만 남을 때의 결과입니다.
또한 명령 프롬프트 구성에서 사용하지 않는 기능을 완전히 제외할 수 있습니다.
다음은 위에서 언급한 명령 프롬프트를 생성하는 부분입니다.
테마 파일은 맨 끝에 있습니다.
이 부분에서 사용하지 않는 기능을 주석 처리하거나 삭제하면 쉽게 사용자 정의할 수 있습니다.
예를 들어 가상 환경을 사용하지 않는 경우 prompt_virtualenv 행을 주석 처리할 수 있습니다.
## Main prompt
build_prompt() {
RETVAL=$?
prompt_status
prompt_virtualenv
prompt_aws
prompt_context
prompt_dir
prompt_git
prompt_bzr
prompt_hg
prompt_end
}
우리 입맛에 맞는 테마를 사용해보자.
기타 – ZSH 주요 주제
robbyrussell 테마는 oh-my-zsh에서 기본적으로 설정됩니다.
다음 테마를 추천합니다.
- agnoster : oh-my-zsh 내장
- (제안) 전력 수준 10k: https://github.com/romkatv/powerlevel10k
- 우주선: https://spaceship-prompt.sh/
- 순수한: https://github.com/sindresorhus/pure
기본 사용자는 agnoster를 권장합니다.
가장 기본적인 사용 방법입니다.
고급 사용자는 Powerlevel10k를 권장합니다.
추천하는 이유는 테마에서 커스터마이징 자체를 지원하기 위함입니다.
(구성 마법사) 샘플 구성 마법사 화면은 다음과 같습니다.
포함할 각 모양과 내용 및 형식 지정을 지원합니다.
행복한 데브