shell prompt (bash, Oh My Zsh)
bash
Ctrl+Backspace로 단어 삭제하도록 만들기
1
2
3
+++ /etc/inputrc 또는 ~/.inputrc
"\C-h": backward-kill-word
이렇게 설정했는데 backspace만 눌러도 한 단어가 지워지는 경우?
더보기
- backspace를 누르면
^?
(0x7f)를 보내도록 되어 있고, Ctrl+backspace를 누르면^H
(0x08)을 보내도록 되어 있는게 일반적임- Ubuntu bash 터미널, mac의 iterm2는 이와 같은 식으로 키코드가 발생함
- 그러나 xshell같은 SSH Client에서는 기본 backspace 키 시퀀스가
^H
로 설정돼 있어 이런 경우 그냥 backspace만 눌러도 1단어가 지워진다.- 기본 키 시퀀스를
^?
로 변경해주고, Ctrl+Backspace를 누르면^H
를 보내도록 키 매핑해준다. ^H
를 발생시키는 키 코드는\b
* 발생 키 코드 확인은showkey -a
- 기본 키 시퀀스를
Oh-my-zsh
1
2
brew install zsh zsh-completions
기본 쉘 zsh로 변경.
/etc/passwd
직접 변경하는 것 보단 이게 낫지.
1
2
chsh umbum -s /usr/bin/zsh
테마 목록 중 마음에 드는 것 설치
- https://github.com/sindresorhus/pure
- geometry
- AgnosterZak
- https://github.com/romkatv/powerlevel10k#get-started 그냥 각각 설치 방법 적어놓은 것 중 Oh-My-Zsh용으로 설치 부분을 따라해서 설치
powerline 폰트는 아래 방식으로 설치하는게 젤 간단.
1
2
3
4
5
git clone<https://github.com/powerline/fonts.git>
cd fonts
./install.sh
zsh 플러그인
- https://github.com/zsh-users/zsh-autosuggestions
- https://github.com/zsh-users/zsh-syntax-highlighting
프롬프트 좌측에 virtualenv 상태 출력 프롬프트 추가
1
2
3
~/.zshrc
POWERLEVEL9K\_LEFT\_PROMPT\_ELEMENTS=(virtualenv context dir vcs)
default값이나, 추가적인 속성을 출력하는 프롬프트가 필요하다면 참고
https://github.com/bhilburn/powerlevel9k#prompt-customization
키바인딩
zsh line editor(zle)를 사용해서 한다.
1
2
3
4
5
6
7
8
9
10
11
zle -al // 가능한 binding commands 출력
~/.zshrc
bindkey "^H" backward-kill-word # Ctrl + Backspace : option + Backspace ## same with \C-H
bindkey "^[[1;5D" backward-word # Ctrl + ← : option + ← ; default
bindkey "^[[1;5C" forward-word # Ctrl + → : option + → ; default
bindkey "^[^?" backward-kill-line # Alt + Backspace : command + Backspace
bindkey "^[[1;3D" beginning-of-line # Alt + ← : command + ←
bindkey "^[[1;3C" end-of-line # Alt + → : command + →
mac의 경우도 zshrc는 위 설정을 그대로 사용한다. 그래야 우분투로 ssh 붙었을 때 동일한 키코드가 입력되어 이런 단축키들을 사용할 수 있음.
item2 설정
그냥 설정 백업 파일 불러오면 됨. Load할 디렉토리만 지정해주면 알아서 불러온다.
- option+del이 ^H발생시키도록 설정.
- option + ←→이 Escape sequence [1;5D, [1;5C를 발생시키도록 설정.
- Command + ←→가 탭이동으로 설정되어 있는 것 해제하고, 각각 Escape sequence [1;3D, [1;3C를 발생시키도록 설정.
- command+del이 hex값 0x1b 0x7f를 발생시키도록 설정
This post is licensed under CC BY 4.0 by the author.