在终端模拟器中创建超链接输出

问题描述 投票:0回答:1

我偶然发现了这个页面https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda其中列出了一个打印字符串的示例,该字符串将在终端模拟器中解释为超链接

printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'

这会导致输出

This is a link
在终端上,可单击以访问网站。

我试图通过我的 Kotlin 应用程序使用两者来复制同样的事情

println("""\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'""")
System.out.println("\\e]8;;http://example.com\\e\\\\This is a link\\e]8;;\\e\\\\\\n'")

但我得到的只是

\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'
\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'

作为输出。
有谁知道如何在 Kotlin 中实现同样的目标?

kotlin terminal-emulator osc-8
1个回答
3
投票

Kotlin 不会解释常规字符串或三引号字符串中的转义序列(如 )。

您应该使用实际的转义字符,表示为 \u001B。

尝试这样的事情

\u001B]8;;http://example.com\u001B\\This is a link\u001B]8;;\u001B\\\n
© www.soinside.com 2019 - 2024. All rights reserved.