回答:
Command Not Found Magicでcommand-not-found
指定されているUbuntuのフックを使用します。現在、インストールするパッケージの提案に使用されています。システムにインストールする必要があるものを参照してください。/usr/share/doc/command-not-found/README
それは依存しないので、いっそのこと、command-not-found
パッケージ、(再)バッシュの組み込み実装command_not_found_handle
を行うにしxdg-open
た場合$1
、既存のファイルであり、そして以前の実装に他のすべてのケースを委任します。
# 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
}
良い質問、気の利いた機能。
さらに考えてみてください:bash_completion
ハンドラーも拡張しない限り、この機能が思うほど気に入らないかもしれません。開いてfile-with-a-long-name.txt
、設定することを想像してください
alias o='xdg-open'
(約)4つのキーを押すだけで十分です。
o f<Tab><Enter>
完全なファイル名を入力するのは面倒な26時間がかかります-そして、それは避けられないタイプミスのバックスペースを除外します。
command_not_found_handle()
関数を変更でき/etc/bash.bashrc
ますか?