7
A
回答
12
根据终端的ECMA-48标准,SGR(Select Graphic Rendition)代码9应该能够实现划叉文本。然而,维基百科页面说,它没有得到广泛的支持,我不知道有这样做。我怀疑那是因为DEC的VTxxx系列didn't support it。
4
用C11或C++ 11编写的应用程序的替代解决方案是使用Unicode combining long stroke overlay字符。
在C++ 11,你可以编写代码是这样的:
#include <iostream>
#include <string>
std::string strikethrough(const std::string& text) {
std::string result;
for (auto ch : text) {
result.append(u8"\u0336");
result.push_back(ch);
}
return result;
}
int main() {
std::cout << strikethrough("strikethrough") << std::endl;
}
代码前缀每个字符与行程覆盖\u0336
输入text
。请注意,该函数假定text
采用单字节编码(如ASCII或拉丁文)进行编码。如果输入为UTF-8,则必须首先将其转换为UTF-32以获取字符边界。
然后输出为s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h
在UTF-8能力的终端。我不知道为什么第一个角色没有穿透力,一定是终极问题。我可以通过在删除线函数调用之前至少打印一个字符来解决此问题。
与上面提到的ANSI转义序列相比,Unicode解决方案还会在我的终端(terminator
)中生成稍微不同的锁定。前者使文本正好在文本的中间,而后者使文本略低于文本。
相关问题
- 1. 是否可以在Jupyter笔记本中显示控制台?
- 2. 绘制具有显示/淡入效果的标签文本
- 3. Javascript var在控制台中显示效果很好,而不是在html中
- 4. 是否可以在Android中的TextView中显示数字文本?
- 5. 找出是否有控制台可用
- 6. 是否可以将效果添加到TextView中的文本?
- 7. 是否可以在TFS源代码控制中显示“显示名称”?
- 8. 是否可以在运行中更改工具提示文本?
- 9. 确定M2M字段是否具有自定义穿透模型
- 10. 是否有可能以.NET的颜色写入控制台?
- 11. 是否可以制作在控制台2上运行命令的脚本?
- 12. 是否可以在sbt控制台中创建RDD?
- 13. 是否可以在代码中启动Rails控制台?
- 14. 是否可以在javascript执行中写入mongodb控制台?
- 15. 是否可以在Chrome控制台中保存过滤器?
- 16. 是否可以禁止在PHP脚本中显示JavaScript文件?
- 17. 显示在控制台
- 18. Textfield显示控制台结果
- 19. 在输入框中输入显示文本到控制台
- 20. 在控制台应用程序中显示多行文本?
- 21. UILabel文本没有显示,但“文本”值正在更新(在控制台中显示)
- 22. 是否有演示显示WCF版本控制?
- 23. 是否可以突出显示Win32编辑控件中的文本?
- 24. 是否可以在控制台输入中提示一个字符串? (java)
- 25. 是否可以控制不可控制的输入文本? - 阵营
- 26. 是否可以在wxPython中使文本变得半透明?
- 27. 是否有可能在控制台中重写上一行?
- 28. Eclipse中是否有控制台功能?
- 29. 是否可以更新git版本控制中所有分支中的文件?
- 30. VSCode是否有像Sublime Text控制台这样的控制台?
我的'libvterm' /'pangoterm'可以做到这一点。请参阅[链接](http://leonerds-code.blogspot.com/2011/09/libvtermpangoterm-and-tickit.html)中的第二个屏幕截图 – LeoNerd
实际上,一组优秀的shell终端似乎支持它(这包括''guake'',''terminator'',''gnome-terminal'',...)。 http://misc.flogisoft.com/bash/tip_colors_and_formatting#terminals_compatibility。快速测试:''echo -e“\ e [9mtest \ e [0m”''。 – vaab