สร้างลิงค์ที่คลิกได้ในเทอร์มินัล


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);

ฉันรู้วิธีลงทะเบียนโปรโตคอลในระบบเพื่อเปิดตัวแก้ไข ตัวอย่างเช่น URL ทั้งหมดsblm://*ในระบบของฉันเปิดใน Sublime Text คำถามของฉันคือ: จะสร้างลิงก์ที่กำหนดเองใน guake terminal ได้อย่างไร (หรืออาจจะไม่ได้ขึ้นอยู่กับ quake และใช้งานได้กับโปรแกรม terminal เริ่มต้น)?

หมายเหตุ: คำถามที่เกี่ยวข้อง (?) มีแอปเทอร์มินัลที่อนุญาตให้คลิกชื่อไฟล์ได้หรือไม่ มีความคลุมเครือในรายละเอียดการใช้งาน / การแก้ปัญหาที่เฉพาะเจาะจงและไม่ได้ระบุความต้องการของฉันอย่างชัดเจนเพื่อข้ามไปยังบรรทัดที่ระบุในไฟล์โดยตรง


คำตอบ:


4

เวอร์ชั่นใหม่ของเทอร์มินัล GNOME สนับสนุนการเชื่อมโยงหลายมิติพร้อมเป้าหมายที่กำหนดเองผ่านลำดับการหลีกเลี่ยงบางอย่าง ลอง

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

การเปิดงานเหล่านี้เป็นไปตามที่อธิบายไว้ในคำตอบของสตีเฟ่นคิตต์ เพื่อแก้ไขปัญหาที่คุณอธิบายคุณสามารถใช้ sed script (หรือวิธีการขั้นสูงบางอย่าง) เพื่อแปลชื่อไฟล์เป็นไฮเปอร์ลิงก์ สำหรับฉันต่อไปนี้จะทำงาน (ในทุบตีและสมมติว่าวิธีข้างต้นเพื่อสร้างการเชื่อมโยงหลายมิติทำงาน)

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

(ฉันไม่ได้ติดตั้งประเสริฐ แต่ส่วนใหญ่คุณสามารถเปลี่ยนไฟล์: เป็น slbm :)

ดูเพิ่มเติมที่: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda (นี่เป็นไปตามคำตอบของฉันที่Terminal - สร้างไฮเปอร์ลิงก์ )


ดูเพิ่มเติมpurpleidea.com/blog/2018/06/29/hyperlinks-in-gnome-terminalสำหรับurlencodeฟังก์ชันทุบตีที่ทำให้สิ่งต่าง ๆ ทำงานได้อย่างถูกต้องเมื่อคุณมีช่องว่างหรือตัวอักษรที่น่าสนใจอื่น ๆ ในไดเรกทอรี / ชื่อไฟล์
Marius Gedminas

3

มันคือคอมพิวเตอร์ คุณสามารถตั้งโปรแกรมได้ :-)

เพื่อให้บางสิ่งบางอย่าง "คลิกได้" หมายถึงการเขียนโปรแกรมประยุกต์ GUI หรืออย่างใดโดยใช้ HTML วิธีที่ง่ายที่สุดที่ฉันสามารถนึกได้ก็คือการสร้างหน้า HTML ของ HREFs และไพพ์เอาท์พุทไปพูดlynxตั้งค่าเบราว์เซอร์ให้เปิดemacsอย่างเหมาะสม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.