我正在尝试检查包含二进制格式化消息的缓冲区,但也包含字符串数据.举个例子,我正在使用这个C代码:
int main (void) {
char buf[100] = "\x01\x02\x03\x04String Data\xAA\xBB\xCC";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想得到一个十六进制转储的内容buf,其格式类似于xxd(我不在乎它是否完全匹配,我真正想要的是与可打印字符并排的十六进制转储).
在GDB里面我可以使用类似的东西:
(gdb) x /100bx buf
0x7fffffffdf00: 0x01 0x02 0x03 0x04 0x53 0x74 0x72 0x69
0x7fffffffdf08: 0x6e 0x67 0x20 0x44 0x61 0x74 0x61 0xaa
0x7fffffffdf10: 0xbb 0xcc 0x00 0x00 0x00 0x00 0x00 0x00
0x7fffffffdf18: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x7fffffffdf20: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x7fffffffdf28: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x7fffffffdf30: 0x00 0x00 …Run Code Online (Sandbox Code Playgroud) 我试过pprint,print前者只打印Unicode版本,后者不做漂亮的打印.
from sympy import symbols, Function
import sympy.functions as sym
from sympy import init_printing
init_printing(use_latex=True)
from sympy import pprint
from sympy import Symbol
x = Symbol('x')
# If a cell contains only the following, it will render perfectly.
(pi + x)**2
# However I would like to control what to print in a function,
# so that multiple expressions can be printed from a single notebook cell.
pprint((pi + x)**2)
Run Code Online (Sandbox Code Playgroud) 是否可以更改prettyprint(require 'pp')在格式化输出时使用的宽度?例如:
"mooth"=>["booth", "month", "mooch", "morth", "mouth", "mowth", "sooth", "tooth"]
"morth"=>["forth",
"mirth",
"month",
"mooth",
"morph",
"mouth",
"mowth",
"north",
"worth"]
Run Code Online (Sandbox Code Playgroud)
第一个数组是内联打印的,因为它适合列宽,prettyprint允许(79个字符)...第二个数组分成多行,因为它没有.但我找不到更改此行为开始的列的方法.
pp取决于PrettyPrint(有哪些方法允许缓冲区的不同宽度).有没有办法更改默认列宽pp,而无需从头开始重写(PrettyPrint直接访问)?
或者,是否有类似的ruby gem提供此功能?
我正在为PowerShell程序寻找源代码美化器.理想情况下,它将基于CLI,但任何解决方案都是可以接受的.我想避免配置一个通用的漂亮的打印机工具; 我想要一个适用于PowerShell开箱即用的解决方案.有这样的事吗?
如您所知,Template Haskell用于在编译时以编程方式生成各种AST拼接.
然而,拼接通常可能非常不透明,并且通常难以辨别拼接实际生成的内容.如果你运行Qmonad进行拼接,并且拼接是良好类型的,你可以很好地show表示生成的AST片段,但由于其非结构化布局,这种表示很难理解.
将TH生成的AST转换为类似于普通Haskell代码的首选方法是什么,以便可以轻松读取和理解代码?可以从例如给定Dec值重建源代码吗?是否必须阅读GHC核心代码?有没有办法至少构建AST,使其变得更具可读性(超出pretty-show包裹的范围)?
所以从瞥一眼hackage我可以看到5个漂亮的打印库:
哦等等,那是6?6个漂亮的印刷图书馆......没等了,我们又来了.
无论如何,他们都是Wadler-Leijen,当然除了HughesPJ.我的理解是WL更简单,更快,因此可能是新代码的首选.
wl-pprint和wl-pprint-extras看起来是一样的...我不知道后者的"额外"是什么,或者"Free"在这里意味着什么(模块是Text.PrettyPrint.Free).
wl-pprint-terminfo和ansi-wl-pprint似乎都是具有ANSI终端颜色和诸如此类的变体,并且似乎是等效的,除了wl-pprint-terminfo没有任何文档.
wl-pprint-text当然使用Text.我不知道实际上有多快差异.
令我担心的是,他们中的许多人都有很多版本.这意味着他们已经添加了功能,修复了错误等等.但他们是否都修复了相同的错误?我倾向于支持ansi-wl-pprint,因为它有文档,并且它的最后一次上传是在2012年,并且有一些版本暗示作者仍在使用它.
但我不确定.有人有什么建议吗?而且我相信其他人同意5个几乎但不完全复制粘贴的模块可以做一些整合......
我在node.js中运行它:
> x = { 'foo' : 'bar' }
{ foo: 'bar' }
> console.log(x)
{ foo: 'bar' }
undefined
> console.log("hmm: " + x)
hmm: [object Object]
undefined
Run Code Online (Sandbox Code Playgroud)
我不明白的是为什么console.log(x)"漂亮地打印"对象,而字符串连接"丑陋打印"它.更重要的是,什么是打印的最佳方式hmm: { foo: 'bar' }?
有什么样Ruby的awesome_print的Golang?
例如在ruby中你可以写:
require 'ap'
x = {a:1,b:2} // also works for class
ap x
Run Code Online (Sandbox Code Playgroud)
输出将是:
{
"a" => 1,
"b" => 2
}
Run Code Online (Sandbox Code Playgroud)
我能找到的最接近的东西是 Printf("%#v", x)
Visual Studio Code (VS Code) 中有许多扩展可以美化 JSON 文件。但是是否有扩展或设置,使我能够查看所有预先格式化/预先美化的 *.json 文件?我发现在查看丑陋的一行 json 数据时不断按 shift-alt-F + ctrl-s 很乏味,特别是如果文件内容定期更新回预先格式化的形式。