ipython 셀은 readline 을 채택해서, 기본 키 바인딩은 emacs 기준임:
- 개인적으론 vi 키바인딩을 선호하지만,
- 대부분의 기본 키 바인딩은 emacs인 경우가 많음
기본 shortcuts
우선 기본 shortcut은 다음과 같음:
| Function | Shortcut (대문자로 기재했으나, 소문자로 입력해도됨) |
| cursor를 line의 맨 앞으로 *** | Ctrl + A |
| cursor를 line의 맨 뒤로 *** | Ctrl + E |
| backspace *** | Ctrl + H |
| cursor를 1단어 뒤로 | Alt (or Option) + B (or 오른화살표) macOS의 경우 특수문자 입력 키능 해제 필요. |
| cursor를 1단어 앞으로 | Alt (or Option) + F :(or 왼화살표) macOS의 경우 특수문자 입력 키능 해제 필요. |
| cursor기준으로 현재 line의 왼쪽 삭제 *** | Ctrl + U |
| cursor기준으로 현재 line의 오른쪽 삭제 *** | Ctrl + K |
| 현재 cell을 clear | Ctrl + C |
| 히스토리 탐색 | 위/아래 화살표 Ctrl + P / Ctrl + N |
| 자동완성 | Tab |
| cusor 앞의 한 단어 자르기 | Alt (or Option) + BACKSPACE Ctrl + W |
| cusor 뒤의 한 단어 자르기 | Alt (or Option) + D : macOS의 경우 특수문자 입력 키능 해제 필요. |
| 최근 마지막 잘라낸 내용 붙여넣기 | Ctrl + Y |
| Undo *** | Ctrl + _ |
아쉬운 건, redo를 ipython에선 지원하지 않음.....
emacs의 단축키는 다음을 참고:
2026.01.07 - [개발환경] - Emacs vs vi 단축키 비교 (주요내용)
Emacs vs vi 단축키 비교 (주요내용)
많이 사용되는 단축키 위주기능Emacs 스타일vi 스타일 (Normal mode)설명줄 맨 앞으로Ctrl-A0beginning of line줄 맨 뒤로Ctrl-E$end of line한 글자 앞으로Ctrl-Flforward한 글자 뒤로Ctrl-Bhbackward단어 앞으로Meta-Fwword
ds31x.tistory.com
Option을 ESC+ (Meta Key)로 사용하기
단, 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 키바인딩 사용하기
vi 키 바인딩으로 바꾸는 것도 나쁘지 않음: 권장.
# 설정 파일 생성
ipython profile create
# 설정파일 편집.
# ~/.ipython/profile_default/ipython_config.py
# 해당 설정파일에 다음 라인을 찾아 다음으로 변경.
# c.TerminalInteractiveShell.editing_mode = 'emacs'
c.TerminalInteractiveShell.editing_mode = 'vi'
다음의 magic command로 일시적으로 변경 가능.
%config TerminalInteractiveShell.editing_mode = 'vi'
vim사용법은 다음을 참고.
https://dsaint31.tistory.com/473
[Linux] vi (or vim) 사용법 정리
vi (or vim) 사용법 정리 더보기관련자료.https://ds31x.tistory.com/174 [CE] Text file: Text 파일이란?"text file" 은사람과 컴퓨터가 읽을 수 있고 처리할 수 있도록 encoding 된 characters 로 이루어진electric text lines
dsaint31.tistory.com
같이 보면 좋은 자료들
2026.01.07 - [CE] - Shell (Python Shell 포함) 의 키보드 단축키에 대해
Shell (Python Shell 포함) 의 키보드 단축키에 대해
bash, zsh, python의 interactive shell, ipython 에서 애용되는 키보드 단축키는 크게 2가지 중 하나임:Emacs 기반Vi 기반거의 대부분, 기본적으로 Emacs를 채택하고 있으나, 쉽게 Vi 방식으로 변경이 가능함.이
ds31x.tistory.com
'utils' 카테고리의 다른 글
| [Utils] vim (or nvim)에서의 register (4) | 2025.08.02 |
|---|---|
| MacTex-jupyter notebook을 pdf로 export (0) | 2025.07.20 |
| [Tool] Builder System (or Packaging System) (0) | 2025.04.06 |
| [vscode] Refactoring (0) | 2025.04.02 |
| [vim] 마우스 설정: (1) | 2025.01.20 |
