我试图使用Emacs TRAMP通过ssh访问未提供的服务器上的文件/bin/sh,因此当我尝试连接时出现以下错误:
env: can't execute '/bin/sh': No such file or directory
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉TRAMP远程shell在哪个服务器?("服务器"是一个系留Android手机,所以请进入/system/bin/sh.)
在emacs的cperl-mode中,连续前一行语句的行缩进一级:
my $var
= (1+1)
* (2+2)
/ (3+3);
Run Code Online (Sandbox Code Playgroud)
但是,如果语句不是从零缩进开始,因为它在块内,那么如果将语句分成第三行,则会得到另一级别的缩进,依此类推:
sub break_my_indentation {
my $var
= (1+1)
* (2+2)
/ (3+3);
return "Indentation is broken.";
}
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题,以便语句在块内部以与外部相同的方式缩进?我想第二个例子看起来像这样:
sub fix_my_indentation {
my $var
= (1+1)
* (2+2)
/ (3+3);
return "Indentation is fixed.";
}
Run Code Online (Sandbox Code Playgroud) 我想通过简单地触摸一个空的.gitignore文件并提交它,以"空"初始提交开始我的所有git存储库.我的理由与这个问题大致相同.通过Baiscally,第一个提交("尾部")没有父提交,因此会发生各种奇怪和意外的事情,这些事情不会发生在其他提交中.
那么有什么类似post-init钩子可以用来跟踪每个git init touch .gitignore && git commit .gitignore -m "Initial commit"吗?或者我应该编写自己的自定义init命令来执行此操作?
我正在尝试使用subprocessPython中的模块与读取标准输入并以流式方式写入标准输出的进程进行通信.我希望从生成输入的迭代器获取子进程读取行,然后从子进程读取输出行.输入和输出线之间可能没有一对一的对应关系.如何从返回字符串的任意迭代器中提供子进程?
下面是一些示例代码,它给出了一个简单的测试用例,以及我尝试过的某些方法因某些原因而无法正常工作:
#!/usr/bin/python
from subprocess import *
# A really big iterator
input_iterator = ("hello %s\n" % x for x in xrange(100000000))
# I thought that stdin could be any iterable, but it actually wants a
# filehandle, so this fails with an error.
subproc = Popen("cat", stdin=input_iterator, stdout=PIPE)
# This works, but it first sends *all* the input at once, then returns
# *all* the output as a string, rather than giving me an iterator over
# …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Perl脚本,我需要在其中循环遍历字符串的每个字符.有很多字符串,每个字符串长100个字符(它们是短的DNA序列,以防你想知道).
那么,使用一次substr提取每个字符是否更快,或者split将字符串更快地转换为数组然后遍历数组?
在我等待答案时,我想我会读到如何在Perl中对事物进行基准测试.
在perldoc perlvar,我读到这个:
请注意,目前"ARGV"仅在"<>"运算符中具有神奇效果; 在其他地方,它只是一个普通的文件句柄,对应于"<>"打开的最后一个文件.特别是,将"*ARGV"作为参数传递给需要文件句柄的函数可能不会导致您的函数自动读取@ARGV中所有文件的内容.
那么,如何可以我通过*ARGV(或一些类似于它)作为一个参数设置为期望一个文件句柄的功能,并有功能读取所有的文件@ARGV?
我正在尝试使用R来分析大型DNA序列文件(fastq文件,每个文件几千兆字节),但这些文件的标准R接口(ShortRead)必须立即读取整个文件.这不适合内存,因此会导致错误.有什么方法可以一次读取几(千)行,将它们填入内存文件,然后使用ShortRead从内存文件中读取?
我正在寻找像Perl的IO :: Scalar这样的东西.
我正在使用ggplot的geom_tile做一个因子面对的2-D密度图.每个方面的比例从所有数据的最小值到所有数据的最大值,但每个方面中的geom_tile仅扩展到该方面中绘制的数据范围.
演示此问题的示例代码:
library(ggplot2)
data.unlimited <- data.frame(x=rnorm(500), y=rnorm(500))
data.limited <- subset(data.frame(x=rnorm(500), y=rnorm(500)), x<1 & y<1 & x>-1 & y>-1)
mydata <- rbind(data.frame(groupvar="unlimited", data.unlimited),
data.frame(groupvar="limited", data.limited))
ggplot(mydata) +
aes(x=x,y=y) +
stat_density2d(geom="tile", aes(fill = ..density..), contour = FALSE) +
facet_wrap(~ groupvar)
Run Code Online (Sandbox Code Playgroud)
运行代码,您将看到两个方面.一个方面显示"无限"随机正态分布的密度图.第二个方面显示一个随机法线截断,位于原点周围的2x2方格内."有限"刻面中的几何体将被限制在这个小盒子内,而不是填充刻面.
last_plot() +
scale_x_continuous(limits=c(-5,5)) +
scale_y_continuous(limits=c(-5,5))
Run Code Online (Sandbox Code Playgroud)

最后三行绘制了具有指定x和y限制的相同数据,并且我们看到在这种情况下,两个facet都没有将tile部分扩展到边缘.
有没有办法强制每个方面的geom_tile延伸到facet的整个范围?
我偶尔会发现将R对象的打印表示形式作为字符串(如Python的repr函数或Lisp)是有用的prin1-to-string.R中是否存在这样的功能?我不需要它来处理复杂或奇怪的对象,只需要简单的向量和列表.
编辑:我想要在控制台中键入的字符串生成一个相同的对象,而不是输出print(object).
我在R中使用多核包来并行化我的代码.但是,如果加载了tcltk软件包,使用多核软件包的分叉进程将导致R无限期挂起.所以我想阻止tcltk加载.如果任何包试图将其作为依赖项加载,我想要立即出错.这可能吗?
或者,我可以在加载包后卸载它吗?
r ×4
emacs ×2
perl ×2
string ×2
android ×1
argv ×1
auto-indent ×1
character ×1
cperl-mode ×1
file-io ×1
filehandle ×1
ggplot2 ×1
git ×1
in-memory ×1
indentation ×1
io ×1
large-files ×1
package ×1
performance ×1
python ×1
ssh ×1
subprocess ×1
tramp ×1