TABのオートコンプリートの仕組みを変更するためにいくつかのことを行いましたが、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 - 各名前の完成仕様を削除するか、名前が指定されていない場合はすべての完成仕様を削除します。
既存の完成を再利用できます。
_completion_loader less 2>/dev/null # for bash-completion >= 1.9, bash >= 4.1
eval $(complete -p less | sed 's/ less$/ more/')
また見なさい:最近のbashの完成を通じて既存の完成を再利用する方法