본문 바로가기
목차
utils

[ipython] Shortcut (단축키) - readline editors

by ds31x 2025. 4. 9.
728x90
반응형

ipython 셀은 readline 을 채택해서, 기본 키 바인딩은 emacs 기준임:

  • 개인적으론 vi 키바인딩을 선호하지만,
  • 대부분의 기본 키 바인딩은 emacs인 경우가 많음

GNU 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

 

728x90

'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