Gunakan command-not-found
kait Ubuntu , seperti yang ditentukan dalam Command Not Found Magic . Saat ini digunakan untuk menyarankan paket untuk diinstal. Lihat /usr/share/doc/command-not-found/README
yang harus diinstal pada sistem Anda.
Lebih baik lagi, karena tidak tergantung pada command-not-found
paket, (kembali) mengimplementasikan Bash builtin command_not_found_handle
untuk melakukan xdg-open
if $1
adalah file yang ada, dan untuk mendelegasikan semua kasus lain ke implementasi sebelumnya.
# 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
}
Pertanyaan bagus, fitur bagus.
Memikirkannya lagi: Anda mungkin tidak suka fitur sebanyak yang Anda pikirkan, kecuali jika Anda juga memperpanjang bash_completion
pawang. Bayangkan ingin membuka file-with-a-long-name.txt
, lalu mengatur
alias o='xdg-open'
akan membuat (sekitar) empat penekanan tombol sudah cukup:
o f<Tab><Enter>
Sedangkan mengetik nama file lengkap mengambil 26 membosankan - dan itu tidak termasuk backspacing atas kesalahan ketik yang tak terhindarkan.
command_not_found_handle()
fungsi/etc/bash.bashrc
untuk memeriksa dan membuka xdg file di direktori yang sama?