在一个LaTeX文档我写,我得到一个溢出的横向盒因为"多学科",它发生在一个行的末尾被渲染的警告.
我可以通过改变它来摆脱这个特殊的警告multi-discipli\-nary,但同样的问题将在其他地方发生,因为这个词在本文中被大量使用.
我想改用\hyphenation{}命令,但显然我的试验\hyphenation{multi-disci-pli-na-ry}不起作用,因为它不能正确理解第一个破折号.
在一个已包含破折号的单词中,我需要使用什么咒语来获得正确的缩进?
奖金问题:我自己哪里可以找到这个问题的答案?
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答案:-)
在一个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) 在我看来.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这里想到一些巫术,但任何见解/想法都会受到欢迎.
我爱上zsh了很长一段时间,最近我一直在发现ipython互动翻译的优势python.能够cd,ls,运行或者!确实非常方便.但是现在在ipython中使用这样一个笨拙的shell感觉很奇怪,我想知道如何更好地整合我的zsh和我的ipython.
当然,我可以在python中重写我的.zshrc和我的所有脚本,并从ipython模拟我的大部分shell世界,但感觉不对.而且我显然还没准备好将ipython用作主shell.
所以,我的问题是:你如何在shell和python命令循环之间有效地工作?我错过了一些明显的整合策略吗?我应该在emacs中做所有这些吗?
我在我的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方式)?
简短版本:如何摆脱多版本的噩梦?
长版本:多年来,我已经使用了几个版本的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与所有的混乱应对?
我正在编写一个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,但我也有bash和zsh安装的情况下,没有什么帮助.
首先,让我说这是一个编程问题(因此不属于超级用户等)因为我在谈论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
有任何想法吗 ?
我想在另一个中搜索一个字符串(基本上是strstrC中的字符串),我在elisp手册中找不到任何内容.
我是否必须重新实现所有这些,或者我错过了一些明显的东西?