Posix 모드에서 bash 완료

Posix 모드에서 bash 완료

대화형 Posix bash 셸을 사용하고 싶지만 자동 완성 기능이 작동하지 않습니다. 탭을 입력하면 탭만 인쇄됩니다. 탭 완성 기능은 Posix가 아닌 쉘이나 Emacs 입력 모드가 있는 Posix 쉘에 있을 때만 작동합니다. 나는 입력 모드에 익숙하기 때문에 Emacs의 입력 모드가 어색하다고 생각합니다 vi. sh명령을 사용하여 bash를 호출하는 것은 도움이 되지 않습니다.

이 내 꺼야 /etc/inputrc:

# do not bell on tab-completion
set bell-style audible

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

# Completed names which are symbolic links to
# directories have a slash appended.
set mark-symlinked-directories on

set editing-mode vi
set keymap vi-insert
set mark-modified-lines on

$if mode=emacs

# for Linux console and RH/Debian xterm
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# commented out keymappings for pgup/pgdown to reach begin/end of history
#"\e[5~": beginning-of-history
#"\e[6~": end-of-history
"\e[5~": history-search-backward
"\e[6~": history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word

# for rxvt
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# for FreeBSD console
"\e[H": beginning-of-line
"\e[F": end-of-line
$endif

답변1

쳇 레이미설명하다:

POSIX 모드에서는 탭 매핑을 통해 vi 편집 모드를 수행하면 안 됩니다. 이는 POSIX.2가 vi 편집 모드의 동작을 완전히 지정하고 표준에서는 탭이 기본적으로 자체 삽입에 매핑되도록 요구하기 때문입니다.

다음 행을 추가하십시오 ~/.inputrc.TAB: complete

아니면 bind 'TAB: complete'다음에 추가할 수도 있습니다.~/.bashrc

답변2

무엇을 볼 것인가POSIX가 말해야 할 것- 완결에 대한 언급은 없습니다. 따라서 Tab(수평) 탭을 생성합니다.

관련 정보