Verwenden Sie Ubuntus command-not-found
Hook, wie in Command Not Found Magic angegeben . Es wird derzeit verwendet, um zu installierende Pakete vorzuschlagen. Informieren Sie sich, /usr/share/doc/command-not-found/README
welche auf Ihrem System installiert werden sollen.
Besser noch, da es nicht vom command-not-found
Paket abhängt , (re) implementieren Sie die integrierte Bash command_not_found_handle
, um eine vorhandene xdg-open
if- $1
Datei zu erstellen und alle anderen Fälle an die vorherige Implementierung zu delegieren.
# Save the existing code for the handler as prev_command_not_found_handle.
# Bit of a hack, as we need to work around bash's lack of lexical closure,
# and cover the case when it is not defined at all.
eval "prev_$(declare -f command_not_found_handle)" >& /dev/null \
|| prev_command_not_found_handle () {
echo "$1: command not found" 1>&2
return 127
}
# Define the new implementation, delegating to prev_handler.
command_not_found_handle () {
if [ -f "$1" ]; then
xdg-open "$1"
else
prev_command_not_found_handle "$@"
fi
}
Gute Frage, nette Funktion.
Überlegen Sie es sich etwas genauer: Möglicherweise gefällt Ihnen die Funktion nicht so gut, wie Sie denken, es sei denn, Sie erweitern auch den bash_completion
Handler. Stellen Sie sich vor, Sie möchten öffnen file-with-a-long-name.txt
und dann einstellen
alias o='xdg-open'
wird (ungefähr) vier Tastendrücke ausreichen:
o f<Tab><Enter>
Während das Eingeben des vollständigen Dateinamens mühsam ist - und das schließt ein Zurücksetzen gegenüber den unvermeidlichen Tippfehlern aus.
command_not_found_handle()
Funktion ändern/etc/bash.bashrc
, um eine Datei im selben Verzeichnis zu suchen und mit xdg zu öffnen?