要计算超过 80 列的行数,我目前使用以下命令:
$ git grep -h -c -v '^.\{,80\}$' **/*.{c,h,p{l,y}} \
|awk 'BEGIN { i=0 } { i+=$1 } END { printf ("%d\n", i) }'
44984
Run Code Online (Sandbox Code Playgroud)
不幸的是,repo 使用制表符进行缩进,因此grep
模式不准确。有没有regex
像 8 个字符那样的标准宽度的治疗标签wc -L
?
出于这个问题的目的,我们可以假设贡献者有足够的纪律性以一致地缩进,或者他们有git commit
代替纪律的钩子。
出于与性能相关的原因,我更喜欢在内部git-grep(1)
或其他grep
工具中工作的解决方案
,而无需预处理文件。
有没有办法解决观察到的系统调用的数量:
SYS_345(0xe, 0xbff94188, 0x2, 0x4000, 0xb6526000) = 2
Run Code Online (Sandbox Code Playgroud)
在正在运行的内核中使用它的符号名称而不在源代码中查找它?
编辑用例是一个过时的strace二进制文件,位于外部框上,其内核源代码检索起来可能很乏味。
我希望在启动时将虚拟化硬件时间设置为固定值。在 Qemu 中,这很容易:
qemu-kvm \
-rtc base=2011-11-11T11:11:00 \
…
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到将其添加到 libvirt (v2.2.0) 中的来宾配置的方法。 Qemu 的一些参数似乎被支持,但日期似乎 不在其中。还有其他方法吗?
我的设置:带有由 libvirt 管理的 Spice 显示的 Qemu,在 X11 的 Linux 上运行。
\n\n我\xe2\x80\x99m 正在寻找一种方法,以在 Qemu 客户端聚焦时保留窗口管理器和 X 服务器中的键绑定。一个 libvirt 或 Qemu 选项、一个编译标志或一些 X11 魔法 \xe2\x80\x93\nanything。
\n\n一个具体的例子:当我按下按键时,Mod4+1
我希望 \nWM 切换到标签1。目前,来宾接收到1
输入,而 WM 则没有接收到任何内容。
图形 Qemu 客户端(这里主要是 Windows 客户机,但\n应该\xe2\x80\x99 并不重要)似乎不加区别地获取键盘输入\n甚至绕过 xkb。从这些客户端忽略诸如 之类的选项这一事实中可以明显看出这一点capslock(swapescape)
。
这会对窗口管理器造成严重破坏。例如 当我在客户端之间循环时,Qemu\n客户端聚焦时,WM\xe2\x80\x99s 绑定\n将变得无用,直到我通过将鼠标四处移动\n来取消对有问题的客户端的聚焦。不用说,这会破坏任何键盘驱动的工作流程。这\xe2\x80\x99s令人气愤。
\n\n另外,由于输入现在被传递到客户端,因此可能会发生各种\n有趣的事情,具体取决于来宾内部的应用程序选择如何处理这些输入\xe2\x80\xa6
\n\n编辑:上游似乎认为这是所需的行为:\xe2\x80\x9c当我们获得键盘焦点时,我们会抓住键盘,因为我们希望一旦我们获得键盘焦点\xe2\x80\x9d,任何按键都会转到虚拟机\n\xe2\x80\x93 这正是我想要避免的。没有理由\n为什么 Spice 客户端应该有权\n所有键盘输入,而不管他们是否获得焦点。
\n提醒(1)提供了一个功能shell()
记录如下:
shell(s_cmd [,i_maxlen])
Executes cmd as a system command, and returns the first 511
characters of output resulting from cmd. Any whitespace
character in the output is converted to a space. Note that if
RUN OFF has been executed, or the -r command-line option has
been used, shell() will result in an error, and cmd will not be
executed.
…
Run Code Online (Sandbox Code Playgroud)
我希望任何s_cmd
写入 stdout 的内容都可以通过提醒本身来解释。例如:
$ echo REM Sep 13 2018 MSG test >/tmp/test.rem
$ …
Run Code Online (Sandbox Code Playgroud)