Vim이나 Emacs보다는 외울 단축키는 없지만, 그래도 Vim과 같이 잘 활용할 수 있으니 정리해서 알아두면 좋을 것 같다는 생각을 했다.
참고로 맥에서 기본 터미널로 제공되는 zsh은 "Z shell"이라고 읽히며 (프린스턴대 Zhong Shao 교수님 이름을 본떠 zsh라 작명), 쉘 스크립팅을 위한 Unix Shell의 일종으로 1990년에 개발된 인터프리터라 보면 되겠다. Bash, ksh, and tcsh의 feature들을 적용했고, 또 오리지널한 피처들도 있다.
크게 4가지로 분류해서 단축키들을 sort할 수 있겠다.
Alt는 맥북에서는 작동이 안되니, 따로 맵핑해야한다.
각 분류된 항목들은 대체로 상위에 있을수록 더 유용할 걸로 선정했다.
Ctrl A - 줄의 맨 처음으로 커서 가기
Ctrl E - 줄의 맨 끝으로 가기
Ctrl F - 한 글자 앞으로 가기
Ctrl B - 한 글자 뒤로 가기
Alt F (Option →) - 핟 단어 앞으로 가기
Alt B (Option ←) - 한 단어 뒤로 가기
Cmd ↑↓→← - 켜진 zsh 창들 바꿔 선택하기
Ctrl U - 전체 줄 지우기
Ctrl K - 커서 뒤 내용들 지우기
Ctrl W - 커서 전 한 단어 지우기
Ctrl - - 실행 취소
Ctrl D - 커서 앞 한 글자 지우기
Ctrl H - 커서 뒤 한 글자 지우기
Ctrl J - 명령하기 (엔터)
Ctrl M - 명령하기 (엔터)
Ctrl V - Quote 붙여넣기
Ctrl R - Open Back Search를 열게 되어 과거 입력한 명령들을 검색할 수 있다. 화살표로도 검색할 수 있다. 그리고 나서 엔터를 누르면 명령이 실행된다.
Ctrl N - 검색할 때 아래로 하나씩 내려가기
Ctrl P - 검색할 때 위로 하나씩 올라가기
Ctrl O - 검색한 내용 명령하고 다음 검색값을 선택하기
Ctrl G - 검색 종료 및 브레이크
Cmd ↑ - 하이라이트되며 어떤 명령어 입력했는지 아래부터 순차적인 검색
추가로 더 복합적인 명령어들은 bindkey를 입력하면 전체 단축키들을 확인해 볼 수 있다.
만약 shift를 통해 여러 문자 선택할 수 있는 emacs설정을 그대로 사용하려면 다음 리포를 확인해 볼 수 있다: https://github.com/jirutka/zsh-shift-select.
Reference:
https://www.zsh.org/
https://stephencharlesweiss.com/zsh-keyboard-shortcuts
https://unix.stackexchange.com/questions/106375/make-zsh-alt-f-behave-like-emacs-alt-f
https://github.com/jirutka/zsh-shift-select
https://gist.github.com/devhero/9fba15958113f40b3907694894d4e4b3
https://wayhome25.github.io/etc/2017/04/04/zsh-shortcut/