14. 대화형 입력 편집 및 히스토리 치환
*************************************

일부 파이썬 인터프리터 버전은 Korn 셸 및 GNU Bash 셸에 있는 기능과 유
사하게 현재 입력 줄 편집 및 히스토리 치환을 지원합니다. 이는 다양한 스
타일의 편집을 지원하는 GNU Readline 라이브러리를 사용하여 구현됩니다.
이 라이브러리에는 자체 설명서가 있고, 여기에서 반복하지는 않습니다.


14.1. 탭 완성 및 히스토리 편집
==============================

변수와 모듈 이름의 완성은 인터프리터 시작 시 자동으로 활성화 되어서
"Tab" 키가 완료 기능을 호출합니다; 파이썬 명령문 이름, 현재 지역 변수
및 사용 가능한 모듈 이름을 찾습니다. "string.a" 와 같은 점으로 구분된
표현식의 경우, 표현식을 마지막 "'.'" 까지 값을 구한 다음, 결과 객체의
어트리뷰트로 완성을 제안합니다. "__getattr__()" 메서드를 가진 객체가
표현식의 일부면 응용 프로그램이 정의한 코드를 실행할 수 있음에 주의해
야 합니다. 기본 설정은 사용자 디렉터리에 ".python_history" 라는 파일로
히스토리를 저장합니다. 다음 대화형 인터프리터 세션에서 히스토리를 다시
사용할 수 있습니다.


14.2. 대화형 인터프리터 대안
============================

이 기능은 이전 버전의 인터프리터에 비교했을 때 엄청난 발전입니다; 그러
나, 몇 가지 아쉬움이 남습니다: 이어지는 줄에 적절한 들여쓰기가 제안된
다면 좋을 것입니다 (구문 분석기는 다음에 들여쓰기("INDENT") 토큰이 필
요한지 알 수 있습니다). 완성 메커니즘은 인터프리터의 심볼 테이블을 사
용할 수 있습니다. 일치하는 괄호, 따옴표 등을 검사하는 (또는 제안하는)
명령도 유용할 것입니다.

꽤 오랫동안 사용됐던 개선된 대화형 인터프리터는 IPython 인데, 탭 완성,
객체 탐색 및 고급 히스토리 관리 기능을 갖추고 있습니다. 또한, 철저하게
커스터마이즈해서 다른 응용 프로그램에 내장할 수 있습니다. 비슷한 또 다
른 개선된 대화형 환경은 bpython 입니다.
