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

jtjikinw  于 2023-03-24  发布在  Kotlin
关注(0)|答案(1)|浏览(150)

我偶然发现了这个页面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中实现同样的功能吗?

vxf3dgd4

vxf3dgd41#

Kotlin不解释常规字符串或三重引号字符串中的转义序列(如\e)。
应该使用实际的转义字符,表示为\u001B。
试试这样的东西

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

相关问题