如何使用emacs string-insert-rectangle操作将数字向量添加到一系列行?例如,我在emacs缓冲区中有一堆文本条目的缩短版本:
element01 8 111111111011010000100000001100101000001111101111011111111000
element01 8 111101101010101001111111111000111110111111011110100101010111
element01 8 111111011001001110111010111111100111010110101011111010110011
element01 8 111111111111111111111111010111101101011101011111000001100000
element01 8 111100111111011111100110110000001011110101000011111011111101
element01 8 111001001011000000011100000101001001100101101011101101011011
element01 8 111011111101101111111111111101101010111110111011111101011011
element01 8 101101111101101111000110111101111010111011101111001101001011
element02 6 110101110101100101100101000111010101110111001001101111111011
element02 6 111001011001001011101110111100111101101011111111111011111101
element02 6 101111100111010111111010010101111101111111101101111011111011
element02 6 111101111111111100111110110111101011111001001101101100111111
element02 6 111111010111101111010011110111001100001000101010111111111101
element02 6 111110111001101111111100111011110000011011100100100111111010
element03 13 110011011111111111101011100111111110011111110100111010011111
element03 13 100011101000111110101101000000000001110110110011110110111101
element03 13 101100011100011111110111110110101101111111110110110100101111
element03 13 111111011110101110101011010111110000010111111011100100011111
element03 13 011100110110110111100101110101111110111100101110010111110011
element03 13 100111111111100100111110110110111111111101011101110110110111
element03 13 101111111111110101110110111011111110111101110110111111111111
element03 13 111110010111110110101111110110111111111110101111111101110011
element03 13 100111111101110110110110111110111010111110110011111111110111
element03 13 110100110111110110110100111010110100110110110110110101111111
element03 13 011111011010111101101001011100111110010111111011111101011010
element03 13 011101111110010000111000000101101010111110100010110110110110 …Run Code Online (Sandbox Code Playgroud) Linus Torvalds在一次演讲中提到Linux中的路径名查找是所有操作系统中最快的,而这种情况可能发生在1000核机器上而没有任何减速.他提到这项工作发生在过去18个月,但我找不到任何关于这一发展细节的参考.有没有文件解释它?
在我的一台Linux机器中,我创建了一个长行并将其管道到gnu,不像这样:
seq -w 1 999 | xargs echo | less
Run Code Online (Sandbox Code Playgroud)
如果我选择从gnu less(版本394)出现的文本,并将其复制+粘贴到其他地方,则将长行分解为多行,每行与终端的宽度一样长,这与我的预期不符.
如果我在不同的Linux盒子(更少的版本444)中做同样的事情,我可以从gnu less缓冲区中选择并将其复制+粘贴到其他地方作为一条长行,这是所需的行为.见图:

粘贴到emacs中的效果,首先是未受影响的效果,下面是期望的效果:

在两个linux框中,如果我使用cat而不是更少并从终端输出中选择,我也可以复制+粘贴一行中的所有内容:
seq -w 1 999 | xargs echo > /tmp/f
cat /tmp/f
Run Code Online (Sandbox Code Playgroud)
相比之下,在两个linux框中,该more命令的行为相反,在选择复制和粘贴时也将长行分解为多行:
seq -w 1 999 | xargs echo > /tmp/f
more /tmp/f
Run Code Online (Sandbox Code Playgroud)
可能会发生什么想法?如何从gnu less缓冲区复制+粘贴,具有我所看到的相同的一致行为cat?
我正在尝试创建一个闪亮的网页,它将有两个不同的主面板和侧面板.因此,当在sidebarPanel中选择"Case A"时,我想要一个具有特定tabsetPanel的特定mainPanel,如果我选择"Case B",则会有所不同.阅读完文档后,我陷入了困境:
ui.R:
shinyUI(pageWithSidebar(
headerPanel("This is a Shiny page"),
sidebarPanel(
selectInput(
"plotType", "Plot Type",
c("Case A","Case B")
)
),
mainPanel(
conditionalPanel(
condition(input.plotType == 'Case A'),
tabsetPanel(
tabPanel("A1",
textOutput("This is conditionalPanel A1")
),
tabPanel("A2",
textOutput("This is conditionalPanel A2")
)
)
),
conditionalPanel(
condition(input.plotType == 'Case B'),
tabsetPanel(
tabPanel("B1",
textOutput("This is conditionalPanel B1")
),
tabPanel("B2",
textOutput("This is conditionalPanel B2")
)
)
)
)
))
Run Code Online (Sandbox Code Playgroud)
server.R:
shinyServer(function(input, output) {
})
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Listening on port 50709
Error in tag("div", list(...)) : could not …Run Code Online (Sandbox Code Playgroud) 我M-x align-regexp在emacs中用来美化我的Perl代码,但默认情况下它使用的是制表符而不是空格,根据Perl评论家的说法,这是不应该做的.
有没有办法改变行为,align-regexp以便填充适当数量的空格而不是标签?
我想在emacs中使用R代码的交互式调试,并找到关于ess-tracebug的内容,但无法使其工作.我做了以下事情:
ess-tracebugC-c C-nM-c c,说"调试不活动"这是我添加到我的~/.emacs文件中的内容:
(load "/home/user/ess/ess-5.13/lisp/ess-site")
(ess-toggle-underscore nil)
(add-to-list 'load-path "/home/user/emacs/")
(require 'ess-tracebug)
(add-hook 'ess-post-run-hook 'ess-tracebug t)
(define-key ess-mode-map "\M-]" 'next-error)
(define-key ess-mode-map "\M-[" 'previous-error)
(define-key inferior-ess-mode-map "\M-]" 'next-error-no-select)
(define-key inferior-ess-mode-map "\M-[" 'previous-error-no-select)
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我有一个很长的perl脚本,它从一个散列的文件中缓存一些信息,每隔一段时间(这里,每100000个位置),它会打印该窗口的散列值,然后尝试删除大部分来自散列的内容,除了在下一次迭代中使用的小缓冲区.
我说它试图删除内容,因为我的脚本在内存使用中爆炸,直到它使用所有内存和崩溃.即使看起来delete语句将散列中的键数(参见下面的打印STDERR)减少到只有少量元素,但脚本的内存消耗也会飙升,就好像它没有删除内容一样.如果我注释掉delete语句,它会使用相同数量的内存,唯一的区别是迭代需要更长的时间.看起来删除命令后键的数量减少了,而不是值的数量.
我确保读取和输出结果没有奇怪的缓冲.事实上,如果我只注释掉使用%hash的地方,那么脚本就不会耗尽内存,因此我将其缩小到填充和删除%hash中的条目.
我也尝试使用hashref而不是%hash,同样的情况仍在发生.
怎么会在记忆中爆炸?我错过了这里明显的一切吗?
my %hash;
# while ( Read from input ) {
# Fill hash here and there with: $hash{$this_p}{$this_c}++
# ...
# Then every 100000 entries
if ( not $pos % 100000 ) {
print STDERR "pre ", scalar %hash , "\n";
warn total_size(\%hash);
for my $p ( sort { $a <=> $b } keys %hash ) {
last if ( $p > $max_possible{$subset} );
if ( $p + $buffer < $pos ) {
print $out …Run Code Online (Sandbox Code Playgroud) 在 emacs 中用 python 语言编辑时,如何将光标从 for 循环的开头导航到结尾?
在使用大括号的其他语言中,从大括号位置键入C-M-n或C-M-p会将光标移动到循环的末尾或开头。python代码有类似的组合键吗?
示例:从 foo 循环的开头导航到结尾,或者 bar 或 xyz 循环:
for foo in foolist:
for bar in barlist:
if foo > 100:
print "foo large"
else:
if bar > 100:
print "bar large"
else:
print "bar small"
for xyz in xyzlist:
print "xyz" . xyz
Run Code Online (Sandbox Code Playgroud)
编辑:
我尝试使用下面的代码,从头到尾有效,但从头到尾不起作用,它从 an 的末尾跳转else到相应的末尾if:
(define-key python-mode-map "\C-\M-n" 'python-nav-end-of-block)
(define-key python-mode-map "\C-\M-p" 'python-nav-beginning-of-block)
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写Google表格应用程序脚本功能,该功能检查当前活动单元格的内容,将其与另一个单元格的内容进行匹配,然后根据该检查的结果移动光标.
对于此示例的电子表格:https: //docs.google.com/spreadsheets/d/1kpuVT1ZkK0iOSy_nGNPxvXPTFJrX-0JgNmEev6U--5c/edit#gid=0
我希望用户转到D2,输入一个值后跟Tab,然后当活动单元格在E2时,该函数将检查D2中D2中的值是否相同.如果是,请留在E2.然后我们在E2中输入值,然后输入Tab,函数检查它是否与C2相同,如果是,则从F2向下移动并向左移动两次到D3.因此,如果正确输入了所有值,则光标在D,E和F中的单元格之间曲折,如下所示:
我能找到的最接近的是下面的答案,但它涉及每次点击菜单中的方法:
我想这个函数可以在编辑文档开始时触发,然后它继续移动光标直到文档完成,此时函数可以停止.
有任何想法吗?
编辑:到目前为止我尝试过:
我已设法将位置更改为硬编码位置'D3'并创建一个功能,使用这些功能向下移动一个:
function onOpen() {
var m = SpreadsheetApp.getUi().createMenu('Move');
m.addItem('Move to D3', 'move').addToUi();
m.addItem('Move to one below', 'move2').addToUi();
m.addItem('Move down left', 'move_down_left').addToUi();
}
function move() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var range = s.getRange('D3');
s.setActiveRange(range);
}
function move2() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var r = s.getActiveRange();
var c = r.getCell(1,1);
var target = s.getRange(c.getRow() + 1, c.getColumn());
s.setActiveRange(target);
}
function move_down_left() …Run Code Online (Sandbox Code Playgroud) 我有一个在磁盘空间有限的小型 AWS 实例中运行的 docker 容器。日志越来越大,所以我使用下面的命令来删除不断增长的日志文件:
sudo -s -H
find /var -name "*json.log" | grep docker | xargs -r rm
journalctl --vacuum-size=50M
Run Code Online (Sandbox Code Playgroud)
现在我想看看正在运行的 docker 容器之一的行为是什么,但它声称日志文件已经消失(来自rm上面的命令):
ubuntu@x-y-z:~$ docker logs --follow name_of_running_docker_1
error from daemon in stream: Error grabbing logs: open /var/lib/docker/containers/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3-json.log: no such file or directory
Run Code Online (Sandbox Code Playgroud)
我希望能够再次看到正在运行的容器中发生了什么,所以我尝试了:
sudo touch /var/lib/docker/containers/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3/d9562d25787aaf3af2a2bb7fd4bf00994f2fa1a4904979972adf817ea8fa57c3-json.log
Run Code Online (Sandbox Code Playgroud)
再一次docker follow,但是在与应该生成日志的软件进行交互时,我可以看到什么也没有发生。
有没有办法在不杀死(重新启动)容器的情况下再次将打印保存到日志文件中?