zsh: bindkey

Sun Mar 31, 2024
1 minute to read

bindkey #

bindkey의 첫 번째 인자로는 아래에서 볼 수 있듯이 ^[[1;5D와 같은 형태의 이스케이프 시퀀스가 온다.

터미널 에뮬레이터마다, 셸마다 키에 배정된 이스케이프 시퀀스가 약간씩 다를 수 있다.
Ctrl +v 와 원하는 문자를 조합해 해당 문자의 이스케이프 시퀀스를 출력해 볼 수 있으니 후술할 bindkey 명령의 인자에 적절한 이스케이프 시퀀스를 넣어서 사용하면 된다.

WORDCHARS #

zsh의 기본 설정으로 WORDCHARS 변수가 세팅되어 있는데, 해당 변수 내용의 문자들은 전부 단어 구분자가 아니라고 알려주는 것이다.
기본값으로 *?_-.[]~=/&;!#$%^(){}<> 등이 들어가 있으므로 필요한 것만 남겨 사용하면 된다.

WORDCHARS에 들어간 문자는 구분자로 사용되지 않는다. 단어 단위 동작 시 해당 문자 앞에서 멈추지 않는다.

예시 #

단어 단위 이동: Ctrl +arrow key

1bindkey '^[[1;5D' backward-word
2bindkey '^[[1;5C' forward-word

단어 단위 삭제: Ctrl +Backspace , Ctrl +Delete

1bindkey '^W' backward-delete-word
2bindkey '^[d' delete-word

입력 버퍼 잘라내기: Ctrl +u

1bindkey '^U' kill-whole-line

입력 버퍼 붙여넣기 Ctrl +y

1bindkey '^Y' yank