Terminalde tıklanabilir bağlantılar oluşturma


13

Arama sonuçlarının bir düzenleyici açmak için bağlantılar (yani köprüler) olarak kullanılabileceği şekilde çıktıyı işlemden geçirmek / dönüştürmek grep (veya grepbenzeri sonuçlar üretmek , dosyalarda dizeler ve / veya desenler bulmak, başka bir yolla) mümkün müdür? Bir tıklamayı istemesini benim de sonucu ve seçilen çizgisinde benim editörü açın.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);

Düzenleyiciyi açmak için sistemdeki protokollerin nasıl kaydedileceğini biliyorum. Örneğin, sblm://*sistemimdeki gibi tüm URL'ler Yüce Metin'de açılır. Benim sorum: nasıl guake terminalinde özel bağlantılar oluşturmak (veya belki depreme bağlı değildir ve varsayılan terminal programı için çalışır)?

Not: ilgili (?) Sorusu, Dosya adlarının tıklanabilir olmasını sağlayan bir terminal uygulaması var mı? , belirli uygulama / çözüm ayrıntılarında belirsizdir ve doğrudan dosyadaki belirli bir satıra atlama gereksinimimden açıkça bahsetmez.


Yanıtlar:


4

GNOME terminalinin yeni sürümü artık belirli kaçış dizileri aracılığıyla özel hedefli köprüleri destekliyor. Deneyin

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

Bunların açılması, Stephen Kitt'in cevabında anlatıldığı gibi çalışır. Tanımladığınız sorunu çözmek için, dosya adlarını köprülere çevirmek üzere bir sed komut dosyası (veya daha gelişmiş bir yöntem) kullanabilirsiniz. Benim için aşağıdaki iş yapar (bash ve köprüler oluşturmak için yukarıdaki yol varsayalım)

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

(Yüce yüklü değilim ama büyük olasılıkla sadece dosyayı değiştirebilirsiniz: slbm içine :)

Ayrıca bkz: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda (Bu, Terminal'deki cevabıma dayanıyor - köprüler oluştur )


Dizin / dosya adlarında boşluk veya başka ilginç karakterleriniz olduğunda işlerin düzgün çalışmasını sağlayan bash işlevi için bkz. Purpleidea.com/blog/2018/06/29/hyperlinks-in-gnome-terminalurlencode .
Marius Gedminas

3

Bu bir bilgisayar; programlayabilirsiniz. :-)

"Tıklanabilir" bir şeyi yapmak, bir GUI uygulaması programlamak veya bir şekilde HTML kullanarak anlamına gelir. Aklıma gelen en basit yolu bir HTML HREF'ler sayfasını ve boru, diyelim ki, çıkış üretmek olacaktır vaşak açık tarayıcıyı yapılandırmadan, Emacs'ta uygun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.