shell prompt (bash, Oh My Zsh)
bash
Ctrl+Backspace로 단어 삭제하도록 만들기
```c
+++ /etc/inputrc 또는 ~/.inputrc
"\C-h": backward-kill-word
```
이렇게 설정했는데 backspace만 눌러도 한 단어가 지워지는 경우?
- backspace를 누르면 ``c ^?``(0x7f)를 보내도록 되어 있고, Ctrl+backspace를 누르면 ``c ^H``(0x08)을 보내도록 되어 있는게 일반적임
- Ubuntu bash 터미널, mac의 iterm2는 이와 같은 식으로 키코드가 발생함
- 그러나 xshell같은 SSH Client에서는 기본 backspace 키 시퀀스가 ``c ^H``로 설정돼 있어 이런 경우 그냥 backspace만 눌러도 1단어가 지워진다.
- 기본 키 시퀀스를 ``c ^?``로 변경해주고, Ctrl+Backspace를 누르면 ``c ^H``를 보내도록 키 매핑해준다.
- ``c ^H``를 발생시키는 키 코드는 `` \b``
* 발생 키 코드 확인은 `` showkey -a``
Oh-my-zsh
```bash
brew install zsh zsh-completions
```
기본 쉘 zsh로 변경.
`` /etc/passwd`` 직접 변경하는 것 보단 이게 낫지.
```bash
chsh umbum -s /usr/bin/zsh
```
테마 목록 중 마음에 드는 것 설치
- https://github.com/sindresorhus/pure
- geometry
- AgnosterZak
- https://github.com/romkatv/powerlevel10k#get-started
그냥 각각 설치 방법 적어놓은 것 중 Oh-My-Zsh용으로 설치 부분을 따라해서 설치
powerline 폰트는 아래 방식으로 설치하는게 젤 간단.
```bash
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 상태 출력 프롬프트 추가
```bash
~/.zshrc
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(virtualenv context dir vcs)
```
default값이나, 추가적인 속성을 출력하는 프롬프트가 필요하다면 참고
https://github.com/bhilburn/powerlevel9k#prompt-customization
키바인딩
zsh line editor(zle)를 사용해서 한다.
```bash
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를 발생시키도록 설정
'OS > LINUX & UNIX' 카테고리의 다른 글
Shell Script (0) | 2021.03.15 |
---|---|
바이너리를 쉘 명령어로 등록하기 (+ 버전 관리, 멀티 패키지) (0) | 2019.05.14 |
SSH 접속 끊어도 프로세스 돌아가도록 하기 : screen, disown, 백그라운드 작업 (1) | 2017.11.13 |
gcc options (2) | 2017.10.01 |
libc 버전 문제 (0) | 2017.07.23 |