TAB 자동 완성 작동 방식을 변경한 작업을 수행했지만 more 명령에만 해당됩니다.
다른 모든 명령은 가능한 완성을 나열하지만 이제 more는 한 쌍의 작은따옴표 안에 모든 가능성을 나열합니다.
따라서 /etc에 다음을 입력하면
more pass<TAB>
결과는
$ more 'passwdqc.conf
passwd
passwd-'
타자
less pass<TAB>
결과
$ less passwd
passwd passwd- passwdqc.conf
more
자동 완성 기능이 더 유사하게 작동 하도록 어떻게 재설정할 수 있습니까 less
?
편집하다:
$ shopt -u
autocd off
cdable_vars off
cdspell off
checkhash off
checkjobs off
compat31 off
compat32 off
compat40 off
compat41 off
direxpand off
dirspell off
dotglob off
execfail off
extdebug off
failglob off
globstar off
gnu_errfmt off
histreedit off
histverify off
hostcomplete off
huponexit off
lastpipe off
lithist off
login_shell off
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nocasematch off
nullglob off
restricted_shell off
shift_verbose off
xpg_echo off
$ set -o
allexport off
braceexpand on
emacs on
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi off
xtrace off
답변1
나는 재현할 수 있습니다:
_comp_foo() { compopt -o filenames -o nospace; COMPREPLY=("$(compgen -f -- "$2")"); }
complete -F _comp_foo foo
cd /etc
유형 foo pass
, Tab. 다음과 같은 내용이 표시됩니다.
foo 'passwd
passwd-'
:)
more의 자동 완성이 less처럼 작동하도록 어떻게 재설정할 수 있나요?
NAME
다음을 사용하여 bash 완료를 재설정할 수 있습니다.complete -r NAME
help complete
말한다:
-r - 각 NAME에 대한 완성 사양을 제거하거나, NAME이 제공되지 않은 경우 모든 완성 사양을 제거합니다.
기존 완성을 재사용할 수 있습니다.
_completion_loader less 2>/dev/null # for bash-completion >= 1.9, bash >= 4.1
eval $(complete -p less | sed 's/ less$/ more/')
또한보십시오:최근 bash 완성으로 기존 완성을 재사용하는 방법