저는 Python에서 (Mercurial의 확장으로) 약간의 CLI를 작성 중이며 탭 완성을 지원하고자합니다. 특히, 나는 프롬프트에서 캐치 탭을 원하고 일치하는 옵션 목록을 보여줍니다 (bash처럼).Python 커맨드 라인 인터페이스의 탭 완성 - Tab 이벤트를 잡는 방법
예 :
ext*TAB*
extensions
extras
문제는 내가 탭 이벤트를 잡는 방법을 잘 모르겠어요입니다 : 섹션 이름을 입력합니다. 나는 ui.prompt()
API를 Mercurial에 사용하고 있는데, 이는 후드 아래 raw_input()
을 호출하는 것입니다.
내가 아는 한 raw_input()
은 '입력'만 반환하고 사용자가 탭을 입력하면 반환되는 문자열에 "\t"
이 포함됩니다.
고마워요,이게 내가 바라는 바로 그거야! 단 하나의 문제가 있습니다. 제 주 시스템에서 작동하지 않습니다. 필자는 OSX 10.6에서 Python 2.6을 사용하고 있으며 정상적으로 '\ t'을 삽입합니다. 그래서 나는 우분투를 부팅했고 완벽하게 작동합니다 -이 라이브러리가 플랫폼 독립적 인 방식인지 알아? – Paulitex
Apple 제공 Python은 GNU readline 라이브러리를 사용하지 않습니다. 대신에 BSD에서 파생 된 editline 라이브러리를 사용합니다. Python.org의 OS X 용 Python 설치 프로그램은 MacPorts와 함께 설치된 Python과 마찬가지로 GNU readline을 사용합니다. –