대화형 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(수평) 탭을 생성합니다.