在终端中创建可点击的链接

Kei*_*ein 15 gnome terminal guake

是否可以处理/转换来自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);
Run Code Online (Sandbox Code Playgroud)

我知道如何在系统中注册协议以打开编辑器。例如,所有的 URL 都像sblm://*我系统中的在 Sublime?Text 中打开。我的问题是:如何在 guake 终端中创建自定义链接(或者它可能不依赖于 quake 并且适用于默认终端程序)?

注意:相关(?)问题,是否有允许文件名可点击的终端应用程序?, 在具体的实现/解决方案细节上含糊不清,并且没有明确提到我的要求?直接跳转到文件中的指定行。

alp*_*num 7

较新版本的 GNOME 终端现在通过某些转义序列支持带有自定义目标的超链接。尝试

echo -e '\e]8;;http://example.com\aThis is a link\e]8;;\a'
Run Code Online (Sandbox Code Playgroud)

以与 Stephen Kitt 的回答中描述的方式相同的方式打开这些工作。要解决您描述的问题,您可以使用 sed 脚本(或一些更高级的方法)将文件名转换为超链接。对我来说,下面的工作(在 bash 中并假设上述创建超链接的方法有效)

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

(我没有安装 sublime,但很可能你可以简单地将 file: 更改为 slbm :)

另请参阅:https : //gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda (这是基于我在终端的回答- 创建超链接


Jam*_*den 0

它是一台电脑;你可以对其进行编程。:-)

要使某些内容“可点击”意味着要么编写 GUI 应用程序,要么以某种方式使用 HTML。我能想到的最简单的方法是生成 HREF 的 HTML 页面,并将输出通过管道传输到lynx,配置浏览器以适当地打开emacs

  • 这并没有回答所提出的问题——他不想通过创建一个全新的终端 GUI 来重新发明轮子。 (6认同)