관련 포스팅
ZSH
`zsh`은 디폴트 shell인 `bash`를 확장하여 개발한 shell로 자동 완성, 다양한 플러그인 등을 지원한다.
설치
sudo apt install zsh
실행
`.zshrc` 파일을 생성해준다.
zsh
shell 변경
chsh -s $(which zsh)
사용중인 shell 확인
echo $SHELL
Prezto
`oh-my-zsh`를 대체할만한 ZSH의 프레임워크이다.
GitHub - sorin-ionescu/prezto: The configuration framework for Zsh
The configuration framework for Zsh. Contribute to sorin-ionescu/prezto development by creating an account on GitHub.
github.com
설치
먼저 기존의 zsh 설정을 모두 삭제해준 뒤 설치를 권장한다.
sudo rm -rf ~/.zsh*
sudo rm -rf ~/.zprezto
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
zsh config 설정
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
이미 configuration files이 있는 경우 `ln` 오류가 발생할 수 있다. 그럴 경우 아래 명령어를 실행한다.
echo 'source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"' >> ~/.zshrc
source ~/.zshrc
module 추가
sudo vi ~/.zpreztorc
`zstyle ':prezto:load' pmodule` 아래에 필요한 모듈을 추가한 후 `:wq!`로 저장하고 닫는다.
zstyle ':prezto:load' pmodule \
'environment' \
'terminal' \
'editor' \
'history' \
'directory' \
'spectrum' \
'utility' \
'completion' \
'history-substring-search' \
'prompt' \
'git' \
'autosuggestions' \
'docker' \
'python' \
'ssh' \
'tmux' \
'homebrew' \
'osx' \
'ruby' \
'rails' \
'syntax-highlighting'
추가된 모듈을 적용시킨다.
source ~/.zpreztorc
Theme 설정
테마를 설정하기 위해선 module에 `prompt`가 추가되어 있어야 한다.
테마 리스트
prompt -l
테마 프리뷰
prompt -p
# 개별 프리뷰
prompt -p {name}
테마 설정
sudo vi ~/.zpreztorc
`zstyle ':prezto:module:prompt' theme`에 원하는 테마 이름을 입력한 후 저장하고 닫는다.
위치는 `/theme`로 쉽게 찾을 수 있다.
zstyle ':prezto:module:prompt' theme 'paradox'
수정된 테마를 적용시킨다.
source ~/.zpreztorc
Nerd Font
몇몇 아이콘이 깨지거나 코딩할 때 가독성이 높은 폰트를 원한다면 nerd font 설치를 추천한다.
GitHub - ryanoasis/nerd-fonts: Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code
Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more - ryano...
github.com
폰트를 편하게 설치할 수 있도록 스크립트를 작성한다.
vi install_fonts.sh
`fonts`에 추가하고자 하는 폰트 이름을 넣어주고 저장한다.
#!/bin/bash
fonts=(
D2Coding
JetBrainsMono
RobotoMono
Ubuntu
UbuntuMono
)
version='3.3.0'
fonts_dir="${HOME}/.local/share/fonts"
mkdir -p "$fonts_dir"
for font in "${fonts[@]}"; do
zip_file="${font}.zip"
download_url="https://github.com/ryanoasis/nerd-fonts/releases/download/v${version}/${zip_file}"
echo "Downloading $download_url"
wget "$download_url"
unzip -n "$zip_file" -d "$fonts_dir"
rm "$zip_file"
done
find "$fonts_dir" -name '*Windows*' -delete
fc-cache -fv
설치 스크립트를 실행한다.
bash install_fonts.sh
# 또는
chmod +x install_fonts.sh
./install_fonts.sh
이후 터미널이나 에디터 등에 nerd font를 적용하면 깨졌던 폰트가 잘 보이게 된다.
Troubleshooting
- `zsh: no matches found: *` : shell에서 모든 문자열을 의미하는 wildcard `*`를 읽을 수 없는 경우
setopt +o nomatch