Membuka file dari terminal hanya dengan mengetik namanya


15

Saya tahu bahwa xdg-openakan membuka dari terminal file di aplikasi pilihan pengguna seperti ini:

xdg-open filename

Tapi saya bertanya-tanya bagaimana saya bisa membuka file dari direktori saat ini di aplikasi standarnya hanya dengan mengetik:

filename

diikuti oleh Enter, tentu saja. Tidak ada lagi.


1
Mungkin Anda dapat memodifikasi command_not_found_handle()fungsi /etc/bash.bashrcuntuk memeriksa dan membuka xdg file di direktori yang sama?
chronitis

1
Saya dapat mengurangi sebagian risiko Anda dengan menggunakan alias. alias open = "xdg-open" open adalah variabel sederhana. Anda dapat membuatnya sesingkat yang Anda inginkan.
rɑːdʒɑ

Jawaban:


20

Gunakan command-not-foundkait Ubuntu , seperti yang ditentukan dalam Command Not Found Magic . Saat ini digunakan untuk menyarankan paket untuk diinstal. Lihat /usr/share/doc/command-not-found/READMEyang harus diinstal pada sistem Anda.

Lebih baik lagi, karena tidak tergantung pada command-not-foundpaket, (kembali) mengimplementasikan Bash builtin command_not_found_handleuntuk melakukan xdg-openif $1adalah 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_completionpawang. 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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.