典型的输出git-describe
看起来像
some-tag-32-gf31f980
Run Code Online (Sandbox Code Playgroud)
where some-tag
标记名称,32
表示在使用该标记提交后所描述的提交是32次提交,并且gf31f980
意味着提交ID被唯一缩写为f31f980
.
我的问题是关于g
在gf31f980
.为什么会这样?我的第一个想法是插入它来消除对输出的解析git-describe
.但我无法想到它实际上有助于它的任何情况.例如,32
组件可能被省略,并且无法知道上面的输出描述了在标签之后提交的提交32 some-tag
,而不是标记处的提交some-tag-32
.但这g
并没有帮助.
只提取提交ID的正则表达式匹配可以搜索/-g([0-9a-f]+)$/
.没有简单的方法来简化这一点; /-g(.*)$/
例如,你不能这样做,因为它可能错误地匹配g
标签名称中的a.没有g
你仍然可以做/-([0-9a-f]+)$/
,所以这g
并没有帮助你.非正则表达式解析过程的行为类似.
这g
是明确生成的; 相关的源代码(约240行builtin/describe.c
)是:
static void show_suffix(int depth, const unsigned char *sha1)
{
printf("-%d-g%s", depth, find_unique_abbrev(sha1, abbrev));
}
Run Code Online (Sandbox Code Playgroud)
搜索有关此信息的信息很难,因为相关术语g
是一个禁用词.
有什么g
用?
我想在Emacs中编辑一个很大的毛茸茸的YAML文件.压缩隐含文件结构:如果行A缩进十个空格,则A开始一个包含每个后续行的段,该行由十个以上的空格缩进.这是一个相当常见的约定,远远超出YAML.
我真正想要的是一个emacs模式,它具有尊重这种结构的定义.例如:
forward-sexp
跳过一个性别,其中通过缩进而不是通过匹配括号来暗示性别.同样,我希望有其他导航命令移动到当前部分结束后的行,到当前部分的下一个兄弟部分,依此类推.我看过了yaml-mode
,但它没有做任何有用的事情.有几个人建议我尝试Python模式,但它不能很好地用于此目的.
一般的缩进行模式似乎是很久以前有人会写的东西,但如果它存在,我找不到它.或者也许有一些方法来破解outline-mode
我想要的方式?
谢谢你的任何建议.
如果我这样做git config foo.bar baz
,这会添加一个foo
部分.git/config
:
...
[foo]
bar = baz
...
Run Code Online (Sandbox Code Playgroud)
我可以再次删除该设置git config --unset foo.bar
,但该部分保留在文件中,其中没有任何内容:
...
[foo]
...
Run Code Online (Sandbox Code Playgroud)
如果我添加其他foo
设置git config foo.bar baz
,git-config
则不将其添加到空白foo
部分; 它开始一个新的:
...
[foo]
[foo]
bar = baz
...
Run Code Online (Sandbox Code Playgroud)
我的问题是:
每天早上我来上班,将正在睡觉的笔记本电脑插入办公桌上的大显示器,然后摆弄这个对话框:
\n\n我想这种摆弄的结果是“显示设置”应用程序将新的显示器配置写入某个文件,然后向窗口管理器发送一些信号以注意到设置已更改。我想自己做这件事并直接控制它,为此目的以及其他目的。
\n\n如果我能找到生成 \xe2\x80\x98Display Settings\xe2\x80\x99 对话框的进程的名称,我可以运行它并strace
查看它在做什么,但我还没有找到要么出去。
我的问题是:
\n\n\n\n该对话框属于哪个程序?我会在输出中寻找什么
\nps
来识别它?当它更改监视器配置时,它实际上在做什么?
我想生成这个图的修订版,它出现在 Haskell98 标准中:
在 2019 年,我将通过生成我想要的图的描述并将其提供给 Graphviz 来做到这一点。我昨天做的一个概念验证实现,只告诉有一个叫做 的东西Monad
,可以自动生成这个图:
概念验证程序相当糟糕,因为它遍历图形的方式是:info
向 GHCi发送命令并尝试解析输出。我对进一步推动这种方法不感兴趣。
正确的做法是弄清楚 GHC 在内部如何表示类和实例信息,然后使用其 API 直接查询这些数据结构。
我花了相当多的时间在GHC API 文档中四处寻找,但我还没有找到我需要的入口点。
我想我想向 GHC 索取当前范围内所有类型类和实例信息的名称列表,以及对每个类型的约束的描述。
有什么好的方法来处理这个问题?我应该去哪里找?
谢谢。
git ×2
emacs ×1
ghc ×1
ghci ×1
haskell ×1
indentation ×1
kde-plasma ×1
reflection ×1
scripting ×1