ipython 셀은 readline 을 채택해서, 기본 키 바인딩은 emacs 기준임: 난 vi 키바인딩을 선호하는데...

우선 기본 shortcut은 다음과 같음:
Function | Shortcut |
cursor를 line의 맨 앞으로 | Ctrl + A |
cursor를 line의 맨 뒤로 | Ctrl + E |
cursor를 1단어 뒤로 | Alt (or Option) + B (or 오른화살표) macOS의 경우 특수문자 입력 키능 해제 필요. |
cursor를 1단어 앞으로 | Alt (or Option) + F :(or 왼화살표) macOS의 경우 특수문자 입력 키능 해제 필요. |
cursor기준으로 현재 line의 왼쪽 삭제 | Ctrl + U |
cursor기준으로 현재 line의 오른쪽 삭제 | Ctrl + K |
Ctrl + C | |
히스토리 탐색 | 위/아래 화살표 |
자동완성 | Tab |
cusor 앞의 한 단어 자르기 | Ctrl + W |
cusor 뒤의 한 단어 자르기 | Alt (or Option) + D : macOS의 경우 특수문자 입력 키능 해제 필요. |
최근 마지막 삭제한 내용 붙여넣기 | Ctrl + Y |
단, macOS에선 Option키가 특수문자 입력에 사용되는터라...
위의 shortcut을 그대로 쓰려면 터미널 프로그램 (iterm2 등)의 추가 설정이 필요함.
- iTerm2:
Settings → Profiles → Key →
Left Option key → Esc+ 로 설정
macOS의 기본 터미널인 Terminal.app 에선 위의 shortcuts가 보통 잘 동작함.
만약 안되면
- Terminal → Settings → Keyboard 에 있는
- Use Option as Meta key 체크해주면 됨.
사실 macOS의 기본 Python REPL (기본 interactive shell)은 libedit
를 사용함: readline
과 유사하지만 조금 다름.
IPython은 readline
스타일의 키바인딩을 사용한다 (좀 더 찾아보니 prompt_toolkit 을 사용하며 직접 readline
을 쓰는 건 아님.)
참고: readline
기반 터미널
GNU readline
라이브러리를 사용하는 터미널 환경 또는 셸(shell) 을 가리킴.
이 환경에서는 사용자가 입력한 줄(line)을 자유롭게 편집하고, 히스토리 탐색도 가능.
참고: readline
이란
GNU readline
은 사용자가 커맨드라인에서 입력할 때,
편집, 이동, 히스토리 탐색, 자동완성 등의 기능을 제공해주는 라이브러리.
기본적으로 emacs 키바인딩을 따름.
참고: libedit 란
BSD 계열에서 개발된 경량의 line edit library.
GNU readline 과 호환되는 API를 제공.
vi 키 바인딩으로 바꾸는 것도 나쁘지 않음: 권장.
'utils' 카테고리의 다른 글
[Tool] Builder System (or Packaging System) (0) | 2025.04.06 |
---|---|
[vscode] Refactoring (0) | 2025.04.02 |
[vim] 마우스 설정 (1) | 2025.01.20 |
[vim] vim-plug 이용: nvim-treesitter, gruvbox (0) | 2025.01.20 |
[vscode] gcc 사용한 C/C++ 프로젝트 환경 구축. (1) | 2025.01.19 |