केवल अपना नाम लिखकर टर्मिनल से फाइल खोलना


15

मुझे पता है कि xdg-openटर्मिनल से उपयोगकर्ता के पसंदीदा अनुप्रयोग में एक फ़ाइल इस तरह खुलेगी:

xdg-open filename

लेकिन मुझे आश्चर्य है कि मैं अपने डिफ़ॉल्ट अनुप्रयोग में वर्तमान निर्देशिका से केवल टाइप करके एक फ़ाइल कैसे खोल सकता हूं:

filename

इसके बाद Enterजरूर। और कुछ नहीं।


1
संभवत: आप उसी निर्देशिका में किसी फ़ाइल को खोलने और खोलने के लिए command_not_found_handle()फ़ंक्शन को संशोधित कर सकते हैं /etc/bash.bashrc?
क्रोनिटिस

1
मैं उपनाम का उपयोग करके आपके कुछ जोखिम को कम कर सकता हूं। उपनाम खुला = "xdg-open" खुला एक चर है। आप इसे जितना चाहें उतना छोटा बना सकते हैं।
r --dʒɑ

जवाबों:


20

उबंटू के command-not-foundहुक का उपयोग करें , जैसा कि कमांड नॉट मैजिक में निर्दिष्ट है । वर्तमान में इसका उपयोग संकुल को स्थापित करने के लिए सुझाने के लिए किया जाता है। /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'  

कर देगा (के बारे में) चार प्रमुख प्रेस पर्याप्त:

o f<Tab><Enter>

जबकि पूर्ण फ़ाइल नाम टाइप करने में एक कठिन 26 लगता है - और यह अपरिहार्य टाइपोस पर बैकस्पेसिंग को बाहर करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.