टर्मिनल में क्लिक करने योग्य लिंक बनाएं


13

क्या grep (या उत्पादन grep-समान परिणाम, फ़ाइलों में तार और / या पैटर्न ढूंढना) से आउटपुट को संसाधित करना / बदलना संभव है , जैसे कि खोज परिणामों का उपयोग लिंक (यानी, हाइपरलिंक) के रूप में एक संपादक को खोलने के लिए किया जा सकता है? मैं अपने परिणाम पर क्लिक करना चाहता हूं और चयनित पंक्ति में अपना संपादक खोलना चाहता हूं।filename:line_numbergrep

$ grep "mServiceIntent" -R ./src/
./src/example/PhotoThumbnailFragment.java:67    private Intent mServiceIntent;
./src/example/PhotoThumbnailFragment.java:194        mServiceIntent =
./src/example/PhotoThumbnailFragment.java:203        getActivity().startService(mServiceIntent);

मुझे पता है कि संपादक को खोलने के लिए सिस्टम में प्रोटोकॉल कैसे दर्ज करें। उदाहरण के लिए, sblm://*मेरे सिस्टम की तरह सभी URL सबलेम टेक्स्ट में खुले हैं। मेरा सवाल यह है कि: गाइक टर्मिनल में कस्टम लिंक कैसे बनाएं (या शायद यह भूकंप पर निर्भर न हो और डिफ़ॉल्ट टर्मिनल प्रोग्राम के लिए काम करता है)?

नोट: संबंधित (?) प्रश्न, क्या कोई टर्मिनल ऐप है जो फ़ाइल नाम को क्लिक करने योग्य बनाता है? , विशिष्ट कार्यान्वयन / समाधान विवरण पर अस्पष्ट है, और स्पष्ट रूप से फ़ाइल में एक पहचान की रेखा पर सीधे कूदने की मेरी आवश्यकता का उल्लेख नहीं करता है।


जवाबों:


4

GNOME टर्मिनल का नया संस्करण अब कुछ निश्चित क्रमों के माध्यम से कस्टम लक्ष्य के साथ हाइपरलिंक का समर्थन करता है। प्रयत्न

echo -e '\e]8;;http://example.com\aThis is a link\e]8;;\a'

इन्हें खोलना उसी तरह से काम करता है, जैसा स्टीफन किट के उत्तर में वर्णित है। आपके द्वारा बताई गई समस्या के समाधान के लिए आप फ़ाइल नाम हाइपरलिंक्स में अनुवाद करने के लिए एक सीड स्क्रिप्ट (या कुछ और उन्नत विधि) का उपयोग कर सकते हैं। मेरे लिए निम्नलिखित कार्य करता है (हाइपरलिंक कार्यों को बनाने के लिए उपरोक्त तरीके से काम करना और संभालने के लिए)

grep "mServiceIntent" -R ./src/ | sed -e $'s#^\(.*\):#\e]8;;file:'`pwd`/$'\\1\a\\1\e]8;;\a#'

(मैं उदात्त स्थापित नहीं है, लेकिन सबसे अधिक संभावना है कि आप बस फ़ाइल को बदल सकते हैं: slbm में :)

इसे भी देखें: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda (यह टर्मिनल पर मेरे उत्तर पर आधारित है - हाइपरलिंक बनाएं )


यह भी देखें कि bash फंक्शन के लिए purpleidea.com/blog/2018/06/29/hyperlinks-in-gnome-terminalurlencode जो आपके द्वारा डायरेक्टरी / फाइल नामों में स्पेस या अन्य दिलचस्प कैरेक्टर रखने पर चीजों को सही ढंग से काम करता है।
मारियस गेदमिनस

3

यह एक कंप्यूटर है; आप इसे प्रोग्राम कर सकते हैं। :-)

कुछ "क्लिक करने योग्य" बनाने का अर्थ है या तो GUI एप्लिकेशन को प्रोग्रामिंग करना या किसी तरह HTML का उपयोग करना। सबसे आसान तरीका मैं के बारे में सोच सकते हैं hrefs की एक HTML पृष्ठ, और पाइप के लिए, कहते हैं, उत्पादन उत्पन्न करने के लिए किया जाएगा बनबिलाव , खुला करने के लिए ब्राउज़र को विन्यस्त Emacs उचित रूप से।

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