Ich habe das auf der Kommandozeile:
ln -sf $PWD/wine-
und dann habe ich getroffen Tab, um den Dateinamen zu vervollständigen. In früheren Versionen von Ubuntu funktionierte dies einwandfrei, um den wine-
Dateinamen zu vervollständigen (und als Nebeneffekt $PWD
würde dies zu diesem Zeitpunkt erweitert werden). Aber jetzt dreht es sich um
ln -sf \$PWD/wine-
Das ist überhaupt nicht das, was ich gemeint habe und vervollständigt nichts, da die Datei nicht wörtlich mit beginnt $
.
Wie komme ich zum weniger kaputten Verhalten zurück?
set
sagt mir, das sind meine aktuellen Einstellungen:
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
command-line
bash
keturn
quelle
quelle
Antworten:
Ich habe festgestellt, dass bash-Versionen> = 4.2.29 eine neue
direxpand
shopt-Einstellung haben. (Sehenman docs/bash.1
Sie, ob Sie eine neue Bash auschecken oder ob Sie Bash.1 aus Zeile 8951 sehen. )Wenn man Quantal Quetzal 12.10 verwendet oder auf andere Weise einen neuen Bash ergreift (oder auscheckt und baut), dann:
Gibt mir das Verhalten, das ich will, brauche und liebe.
Umgehung: In der Zwischenzeit Ctrl+ Alt+ Estatt Tabtut , was ich auch will. Ist aber umständlich.
Übrigens, es gibt mehrere Threads, die als "Bash-Tab-Variablenerweiterungsfrage" bezeichnet werden. in gnu.bash.bug . Nachdem ich sie gelesen hatte, fand ich die Informationen hier.
quelle
4.4.19
auf Ubuntu 18.04 und es funktioniert einfach. Ich bin mir nicht sicher, wann sich das geändert hat.Suchen Sie
_filedir()
im bash_completion-Skript der obersten Ebene und ändern Sie die Zeilezu
quelle
compopt: noquote: invalid option name
Für diejenigen (wie ich) mit 12.04 kann ~ + anstelle von $ PWD verwenden ...
beispielsweise :
quelle
Selbst mit der aktualisierten Bash habe ich festgestellt, dass
$
immer noch entkommen wird.bash-completion (1:2.1-3.fc20)
Paket entfernen/etc/bashrc
aus~/.bashrc
schien es zu beheben.Ich vermute, dass mir jetzt einige Funktionen fehlen, an die ich normalerweise gewöhnt bin, die ich aber noch nicht bemerkt habe.
Alternativ (zumindest für Fedora 26)
export BASH_COMPLETION_VERSINFO=0
vor dem Einkauf hinzufügen/etc/bashrc
. Dies lässt das problematische Skript denken, dass es bereits bezogen wurde.quelle
Ich habe das gleiche Problem mit Bash in Cygwin festgestellt. Ich habe mein Problem mit der folgenden Option behoben.
http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
quelle
Das Deaktivieren der Shell-Option 'complete_fullquote' erledigt die Aufgabe:
quelle
Dies hat es für mich behoben und auch viele "intelligente" Vervollständigungsoptionen beseitigt, die mir durch das Nicht-Vervollständigen von Dateien, von denen ich weiß, dass sie dort sind, im Weg stehen, weil das Dumme denkt, ich möchte sie nicht als Argumente für ein bestimmtes Objekt Befehl. ARRRGH
quelle