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에선 지원하지 않음.....
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
'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 |
