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

```

 

테마 목록 중 마음에 드는 것 설치

그냥 각각 설치 방법 적어놓은 것 중 Oh-My-Zsh용으로 설치 부분을 따라해서 설치

 

powerline 폰트는 아래 방식으로 설치하는게 젤 간단.

```bash

git clone https://github.com/powerline/fonts.git

cd fonts

./install.sh

```

 

zsh 플러그인

 

프롬프트 좌측에 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를 발생시키도록 설정