Ich habe etwas getan, das die Funktionsweise der TAB-Autovervollständigung geändert hat, aber nur für den Befehl „more“.
Jeder andere Befehl listet die möglichen Vervollständigungen auf, aber „more“ listet jetzt ALLE Möglichkeiten in einfachen Anführungszeichen auf.
Wenn ich also in /etc Folgendes eingebe,
more pass<TAB>
Das Ergebnis ist
$ more 'passwdqc.conf
passwd
passwd-'
Tippen
less pass<TAB>
Ergebnisse in
$ less passwd
passwd passwd- passwdqc.conf
Wie kann ich es zurücksetzen, damit more
sich die Autovervollständigung eher wie verhält less
?
Bearbeiten:
$ 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
Antwort1
Ich kann es reproduzieren:
_comp_foo() { compopt -o filenames -o nospace; COMPREPLY=("$(compgen -f -- "$2")"); }
complete -F _comp_foo foo
cd /etc
Geben Sie foo pass
, ein Tab. Sie sollten ungefähr Folgendes sehen:
foo 'passwd
passwd-'
:)
Wie kann ich es zurücksetzen, sodass sich die Autovervollständigung von „more“ eher wie „less“ verhält?
Sie können eine Bash-Vervollständigung zurücksetzen NAME
mitcomplete -r NAME
help complete
sagt:
-r - entfernt eine Vervollständigungsspezifikation für jeden NAMEN oder, wenn keine NAMEN angegeben sind, alle Vervollständigungsspezifikationen
Sie können eine vorhandene Vervollständigung wiederverwenden:
_completion_loader less 2>/dev/null # for bash-completion >= 1.9, bash >= 4.1
eval $(complete -p less | sed 's/ less$/ more/')
Siehe auch:So verwenden Sie die vorhandene Vervollständigung mit der aktuellen Bash-Vervollständigung erneut