小编Gyo*_*yom的帖子

如何让LaTeX连接包含短划线的单词?

在一个LaTeX文档我写,我得到一个溢出的横向盒因为"多学科",它发生在一个行的末尾被渲染的警告.

我可以通过改变它来摆脱这个特殊的警告multi-discipli\-nary,但同样的问题将在其他地方发生,因为这个词在本文中被大量使用.

我想改用\hyphenation{}命令,但显然我的试验\hyphenation{multi-disci-pli-na-ry}不起作用,因为它不能正确理解第一个破折号.

在一个已包含破折号的单词中,我需要使用什么咒语来获得正确的缩进?

奖金问题:我自己哪里可以找到这个问题的答案?

latex hyphenation

102
推荐指数
6
解决办法
11万
查看次数

如何让dtrace以非root权限运行跟踪命令?

OS X缺少linux strace,但它dtrace本来应该是更好的.

但是,我错过了对单个命令进行简单跟踪的功能.例如,在linux上我可以写入strace -f gcc hello.ccaputre所有系统调用,它给出了编译器编译程序所需的所有文件名列表(优秀的memoize脚本是基于这个技巧)

我想在mac上移植memoize,所以我需要一些strace.我真正需要的是gcc读取和写入文件的列表,所以我需要的更多是一个truss.我当然可以说dtruss -f gcc hello.c并获得一些相同的功能,但随后编译器运行root权限,这显然是不可取的(除了大量的安全风险,一个问题是该a.out文件现在由root拥有:-)

然后我尝试了dtruss -f sudo -u myusername gcc hello.c,但这感觉有点不对,并且无论如何都不起作用(a.out这次我得不到文件,不知道为什么)

所有长篇故事都试图激发我的原始问题:如何dtrace使用普通用户权限运行我的命令,就像strace在linux中一样?

编辑:似乎我不是唯一一个想知道如何做到这一点:问题#1204256与我的几乎相同(并且具有相同的次优sudo答案:-)

macos dtrace root strace

56
推荐指数
4
解决办法
2万
查看次数

在numpy数组中查找相同值的序列长度(运行长度编码)

在一个pylab程序(也可能是一个matlab程序)中,我有一个数字表示距离的numpy数组:d[t]是时间距离t(我的数据的时间跨度是len(d)时间单位).

我感兴趣的事件是当距离低于某个阈值时,我想计算这些事件的持续时间.很容易得到一组布尔值b = d<threshold,问题归结为计算真实单词长度的顺序b.但我不知道如何有效地做到这一点(即使用numpy原语),并且我使用数组并进行手动更改检测(即当值从False变为True时初始化计数器,只要值为True就增加计数器,当值返回False时,将计数器输出到序列.但这非常缓慢.

如何在numpy数组中有效地检测那种序列?

下面是一些python代码,说明我的问题:第四个点需要很长时间才能出现(如果没有,增加数组的大小)

from pylab import *

threshold = 7

print '.'
d = 10*rand(10000000)

print '.'

b = d<threshold

print '.'

durations=[]
for i in xrange(len(b)):
    if b[i] and (i==0 or not b[i-1]):
        counter=1
    if  i>0 and b[i-1] and b[i]:
        counter+=1
    if (b[i-1] and not b[i]) or i==len(b)-1:
        durations.append(counter)

print '.'
Run Code Online (Sandbox Code Playgroud)

python matlab numpy matplotlib

48
推荐指数
5
解决办法
2万
查看次数

集成readline的kill-ring和X11剪贴板

在我看来.zshrc,我使用以下代码片段来集成shell的剪贴板和我的主要X11剪贴板.由于这种集成,我可以在emacs,firefox和终端上剪切和粘贴文本,而无需使用鼠标.

kill-line() { zle .kill-line ; echo -n $CUTBUFFER | xclip -i }
zle -N kill-line # bound on C-k

yank() { LBUFFER=$LBUFFER$(xclip -o) }
zle -N yank # bound on C-y
Run Code Online (Sandbox Code Playgroud)

注意:我也在mac os x上使用这个技巧(使用pbcopy/pbpaste而不是xclip)并且由于Synergy,我的两台计算机共享一个剪贴板.整齐.但它不适用于readline.我发现自己经常使用readline,例如在(i)python,gdb,ncftp ......

所以我的问题就出现了:有没有办法将readline的剪贴板与世界其他地方集成?

当然,我在.inputrc这里想到一些巫术,但任何见解/想法都会受到欢迎.

unix shell clipboard readline

12
推荐指数
3
解决办法
2710
查看次数

如何整合ZSH和(i)python?

我爱上zsh了很长一段时间,最近我一直在发现ipython互动翻译的优势python.能够cd,ls,运行或者!确实非常方便.但是现在在ipython中使用这样一个笨拙的shell感觉很奇怪,我想知道如何更好地整合我的zsh和我的ipython.

当然,我可以在python中重写我的.zshrc和我的所有脚本,并从ipython模拟我的大部分shell世界,但感觉不对.而且我显然还没准备好将ipython用作主shell.

所以,我的问题是:你如何在shell和python命令循环之间有效地工作?我错过了一些明显的整合策略吗?我应该在emacs中做所有这些吗?

python shell zsh ipython

11
推荐指数
2
解决办法
5691
查看次数

如何在mac os x 10.6上安装gnu ld?

我在我的macbook pro(使用mac os x 10.6)上编译非常出色的Contiki OS时遇到了很多麻烦.Contiki实际上使用了许多GNU特有的功能和GCC,AR,LD等选项.所以我通过macports安装了这些实用程序,但看起来"port install binutils"不安装GNU ld,是吗?

所以,问题是,如何在我的Mac上获得GNU ld?是否有一种简单的替代方式(即wget, configure, make, make install方式)?

macos ld binutils

10
推荐指数
1
解决办法
1万
查看次数

如何维护长期存在的python项目依赖项和python版本?

简短版本:如何摆脱多版本的噩梦?

长版本:多年来,我已经使用了几个版本的python,更糟糕的是,python的几个扩展(例如pygame,pylab,wxPython ......).每次它在不同的设置上,使用不同的操作系统,有时候是不同的架构(比如我的旧PowerPC mac).

现在我正在使用mac(x86-64上的OSX 10.6),每次我想恢复比几个月更早的脚本时,这是一个依赖性的噩梦.Python本身已经有三种不同的版本/usr/bin(2.5,2.6,3.1),但我必须从macports安装2.4 for pygame,其他东西(不记得是什么)迫使我从macports安装所有其他三个,所以在在我的系统上,我是七个(!)python实例的幸福拥有者.

但这不是问题,问题是,它们都没有安装正确的(即同一组)库,其中一些是32位,大约64位,现在我几乎丢失了.

例如,我现在正在尝试运行一个三年前的脚本(不是由我编写的),它曾经使用matplotlib/numpy在wxwidgets窗口的矩形内绘制实时图.但我惨遭失败:来自macports的py26-wxpython将无法安装,库存python包含wxwidgets但在32位和64位之间也存在一些冲突,并且它没有numpy ......真是一团糟!

显然,我做错了事.如何 usally与所有的混乱应对?

python installation dependencies multiple-versions

10
推荐指数
2
解决办法
719
查看次数

如何在shell脚本中静默禁用xtrace?

我正在编写一个shell脚本,它循环遍历某些值并为每个值运行一个长命令行.我想在整个过程中打印出这些命令,就像make运行makefile时一样.我知道我可以在运行之前"回显"所有命令,但感觉不够优雅.所以我正在寻找set -x和类似的机制:

#!/bin/sh

for value in a long list of values
do
    set -v
    touch $value # imagine a complicated invocation here
    set +v
done
Run Code Online (Sandbox Code Playgroud)

我的问题是:在每次迭代中,不仅打印出有效线,而且还打印set +x出线.是否有可能阻止这种情况?如果没有,您推荐什么解决方法?

PS:以上用途MWE sh,但我也有bashzsh安装的情况下,没有什么帮助.

shell

7
推荐指数
2
解决办法
3575
查看次数

根据长度将命令的输出输入less或into cat

首先,让我说这是一个编程问题(因此不属于超级用户)因为我在谈论shell编程.这可能几乎是一个高尔夫问题,但我没有答案开始,所以任何帮助将不胜感激:-)

所以,故事是:我喜欢less--quit-if-one-screen选项来管理它,因为它很舒服:less在不必要时不会妨碍我.或者是吗?当我的提示已经在终端窗口的底部时,此选项完全符合我的要求(即less行为cat).但是,当我当前的提示位于窗口顶部时,less首先打印大量空行以清除屏幕,然后在屏幕底部打印出我的(短)文件,然后它才会意识到文本较少比一个屏幕,所以它退出,我得到我的提示.

但是这种行为并不是很好,因为所有那些无用的空白行.我尝试了不同的选项,或编写脚本和别名,我能想到的最好的就是这个(我使用的是zsh,所以shell已经能够复制管道等等):

function catless() {
 cat   \
  >>( bucket -$LINES | cat  ) \
  >>( bucket +$LINES | less )
}
Run Code Online (Sandbox Code Playgroud)

bucket我刚写的另一个脚本在哪里,如果它小于N行(带-N)或多于N(带+ N),则将stdin复制到stdout.我在这里发布了它:http://snipt.net/Gyom/copy-stdin-to-stdout-or-not-depending-on-length

ls | catless几乎工程.但是,出于同步原因,这里涉及的不同进程无法正确访问终端,并且所有内容都在后台执行(特别是,我从来没有less在这里得到正确的,并且提示很快就会回来).但也许我走错了路.

因此,总而言之,我想要的是这样一个函数/脚本/我可以输入的任何内容,ls | catless它的行为与输出短于一个屏幕时的行为完全相同,就像更长时间一样.ls | catlsls | less

有任何想法吗 ?

shell zsh pager

6
推荐指数
2
解决办法
2468
查看次数

emacs lisp中的strstr()?

我想在另一个中搜索一个字符串(基本上是strstrC中的字符串),我在elisp手册中找不到任何内容.

我是否必须重新实现所有这些,或者我错过了一些明显的东西?

string emacs search

4
推荐指数
2
解决办法
327
查看次数