कमांड लाइन से टेक्स्ट फ़ाइलों को संपादित करने के लिए एप्लिकेशन खोलें


9

OSX में TextWrangler स्थापित करते समय आपको एक editकमांड भी मिलती है जो आपको कमांड लाइन से किसी भी टेक्स्ट फ़ाइल को खोलने की अनुमति देती है।

क्या विशिष्ट टेक्स्ट एडिटर (जैसे केट) में फ़ाइल खोलने के लिए टर्मिनल पर कुछ कमांड टाइप करने के लिए उबंटू में समान कार्यक्षमता होना संभव है?

जवाबों:


11

फ़ाइल का उपयोग करके खोलने के लिए kate, आप कुछ इस तरह से चला सकते हैं:

kate filename

यह कुछ संदेश दिखा सकता है जैसे:

kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/usr/share/mime/magic"
kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/home/user/.local/share/mime/magic"
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon

इन संदेशों को हटाने के लिए, त्रुटि आउटपुट स्ट्रीम को इनडायरेक्ट करें /dev/null:

kate filename 2>/dev/null

यदि आप एक ही टर्मिनल का उपयोग जारी रखना चाहते हैं, &तो कमांड के बाद जोड़ें :

kate filename 2>/dev/null &

यदि आप edit filenameइसे खोलने के लिए भागना चाहते हैं , तो आप अपनी ~/.bashrcफ़ाइल में बैश फ़ंक्शन बना सकते हैं । अपनी ~/.bashrcफ़ाइल में अगला कोड जोड़ें :

edit() { kate "$@" 2>/dev/null & }

यह वह चीज है जो मैं देख रहा था। वास्तव में कमांड चलाने के लिए धन्यवाद और सबसे स्पष्ट समाधान के साथ आने वाली समस्याओं को देखेंगे। मुझे लगता है कि मैं जो करूँगा वह एक नई कमांड बनाने के लिए है जिसे मैं edit filenameपूरी चलाने के लिए कह सकता हूं kate filename 2>/dev/null &
जुआन ए। नवारो

1
@ जुआन: मैंने ऐसा करने के लिए एक उदाहरण जोड़ा है। $@मामले में आवश्यक हो तो आप लाइन नंबर जैसे अतिरिक्त विकल्पों के पारित करने के लिए की जरूरत है। एक विकल्प के रूप में, आप इस फ़ंक्शन को समर्थन करने के लिए ट्वीक कर सकते हैं edit filename linenumber
लेकेनस्टाइन

आपके उत्तर में एक बग है, और मैं इसे संपादित करने के लिए प्रतीत नहीं कर सकता। आप के आसपास $@(होना चाहिए "$@") उद्धरण भूल गए , जिसका अर्थ है कि आपकी स्क्रिप्ट फ़ाइलनाम के साथ विफल हो जाएगी जिसमें रिक्त स्थान होते हैं।
स्कॉट सेवेरेंस

18

आप इस तरह के किसी भी संपादक को खोल सकते हैं (मेरे ज्ञान के अनुसार):

NAME_OF_EDITOR FILENAME

gedit filename(उबंटू)
kate filename(कुबंटू)
bluefish filename
kwrite filename
libreoffice filename

तुम भी एक वेब पेज उसी तरह
firefox filename.html
chrome filename.html
banshee filename.oggया .mp3 खोल सकते हैं

आप यहाँ प्रवृत्ति देख सकते हैं ।।


दरअसल यह होना चाहिए gedit filename &अन्यथा टर्मिनल अनुपयोगी बना रहता है। एक ही बात के साथ होता है, kateलेकिन इसके साथ भी, &यह टर्मिनल को अनुपयोगी बनाता है क्योंकि यह टर्मिनल को डिबग (या जो भी) जानकारी देना शुरू करता है। वहाँ &अंत में से बचने के लिए एक रास्ता है ? जैसा कि मैं editTextWrangler से करता हूं ?
जुआन ए। नवारो

नेवरमाइंड, लेकेनस्टीन का जवाब है (कम से कम) जो मैं देख रहा था।
जुआन ए। नवारो

1
सही है, यदि आप इसका उपयोग करते रहना चाहते हैं, तो आप कंसोल में आउटपुट त्रुटि और सामग्री नहीं जोड़ने के लिए & या इसमें 2> / dev / null जोड़ सकते हैं ।
लुइस अल्वाराडो

3

यदि आप editउबंटू में कमांड का उपयोग करना पसंद करते हैं, क्योंकि आप ऐसा करने के लिए उपयोग किए जाते हैं, तो आप अपने पसंदीदा संपादक के लिए एक उपनाम भी परिभाषित कर सकते हैं जैसे KK:

alias edit='kate'

इस उपनाम को अनुमति देने के लिए बस इस पंक्ति को इसमें जोड़ें ~/.bash_aliases


2

यदि आपके पास कोई ग्राफिक्स वातावरण नहीं है और आप कंसोल पर चल रहे हैं, तो आप हमेशा उपयोग कर सकते हैं:

vim foo.txt
nano bar.txt
pico foo.html
emacs bar.xml
...

और इसलिए पहले जवाब पर वापस गिर जाता है ..


1
"emacs -nw" या "xemacs -nw" यदि आप चाहते हैं कि VT100 (x) emacs एक खिड़की वाले वातावरण के अंदर भी हो।
बैरीकेटर

1

आप फ़ाइलों को खोलने और संपादित करने के लिए वांछित संपादक के लिए CLI कमांड का उपयोग कर सकते हैं। उदाहरण के लिए geditgnome या kateKDE में।

बस टाइप करो:

kate filename

केट में फ़ाइल खोलने के लिए।


1

मैं कभी-कभी एक शास्त्रीय टर्मिनल का उपयोग करता हूं जहां mcedit मेरा पसंदीदा संपादक है, और अक्सर एक प्रोग्राम / स्क्रिप्ट को सही करने के लिए एक लाइन नंबर पास करना पसंद करता है।

उन्हें समान रूप से बुलाने के लिए edit source.sh 123मैंने यह स्क्रिप्ट लिखी, जिसे मैंने पथ में 'संपादित' के रूप में रखा:

#!/bin/bash
#   - edit a file using mcedit or gedit, depending on X11 or console invoking.
#   - jump to specified line, if any.

Xedit=/usr/bin/gedit

if [[ $TERM = "linux" ]]; then
    if [ $# -eq 1 ]; then
        mcedit $1
        else if [ $# -eq 2 ]; then
#           echo "edit invoked\t/usr/bin/mcedit +$2 $1" >> /tmp/edit.log
            /usr/bin/mcedit +$2 $1
            else if [ $# -eq 0 ]; then
                /usr/bin/mcedit
            fi
        fi
    fi
    else if [[ $TERM = "xterm" ]]; then
        # scheint nicht zu helfen
        # LANGUAGE=C
        export LC_ALL=C
        if [ $# -eq 1 ]; then
            $Xedit $1
            else if [ $# -eq 2 ]; then
#               echo "edit invoked\t/usr/bin/scite -open:$1 -goto:$2" >> /tmp/edit.log
                # $Xedit -open:$1 -goto:$2
                $Xedit +$2 $1 
                else if [ $# -eq 0 ]; then
                    $Xedit
                fi
            fi
        fi
    fi
fi

पुराने डिबग निर्देशों का उपयोग करें जब से मैंने आलेखीय संपादक के रूप में, स्कैड का उपयोग नहीं किया।

कुछ, जो इस तरह से काम नहीं करता है, इस तरह से कई फाइलें खोल रहा है:

 edit *.html

यदि एक से अधिक html-File है, तो पैटर्न कई फ़ाइलों में विस्तारित हो जाता है।

मान्य चालान हैं:

 edit 
 edit foofile 
 edit foofile 123

X या टर्मिनल से।

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