如果在交互模式下使用Tcl,我在其中输入以下内容:
set list {1 2 3 4 5}
set sum 0
foreach el $list {
set sum [expr $sum + $element]
}
Run Code Online (Sandbox Code Playgroud)
它会显示一条非常简洁的信息:
can't read "element": no such variable
Run Code Online (Sandbox Code Playgroud)
但是当我用的时候
puts $errorInfo
Run Code Online (Sandbox Code Playgroud)
它将显示:
can't read "element": no such variable
while executing
"expr $sum + $element"
("foreach" body line 2)
invoked from within
"foreach el $list {
set sum [expr $sum + $element]
}"
Run Code Online (Sandbox Code Playgroud)
这就是我真正想要的.
问题是:在非交互模式下,当我想捕获此错误然后放入errorInfo以获得堆栈跟踪时,它只会显示简洁信息.如何获得如上所述的详细堆栈跟踪?非常感谢!
编辑添加更多细节
说我有以下代码:
proc test1 {} {
set list {1 2 3 4 5}
set sum …Run Code Online (Sandbox Code Playgroud) 我在emacs中进行大部分开发,并使用bzr进行版本控制.我推断这c-x v =相当于bzr diff,但我不清楚如何从emacs中提交,或者各种bzr命令如何映射到emacs键绑定.任何人都可以建议最好的方法或指向我的教程吗?
wiki/stackoverflow /等是什么 在存储文本方面做什么?文字是否在换行符处被打破?它被分成固定长度的块吗?你如何最好地存储任意长的文本块?
如何编写Emacs Lisp函数来查找HTML文件中的所有href并提取所有链接?
输入:
<html> <a href="http://www.stackoverflow.com" _target="_blank">StackOverFlow</a> <h1>Emacs Lisp</h1> <a href="http://news.ycombinator.com" _target="_blank">Hacker News</a> </html>
输出:
http://www.stackoverflow.com|StackOverFlow http://news.ycombinator.com|Hacker News
我在搜索过程中看到了多次提到的重新搜索转发功能.根据我到目前为止所读到的内容,我认为这是我需要做的.
(defun extra-urls (file)
...
(setq buffer (...
(while
(re-search-forward "http://" nil t)
(when (match-string 0)
...
))
我在Emacs 23中使用ido模式进行文件和缓冲区切换.
如果目录中有多行文件,则以下选项允许调整迷你缓冲区的大小:
(setq resize-mini-windows t) ; grow and shrink as necessary
(setq max-mini-window-height 3) ; grow up to max of 3 lines
Run Code Online (Sandbox Code Playgroud)
但是,这仅在默认情况下未启用行截断时才起作用(全局):
(setq-default truncate-lines t) ; Truncate, do not wrap lines
Run Code Online (Sandbox Code Playgroud)
我喜欢我的主编辑窗口的这个选项,但这也覆盖了上面的功能,以显示迷你缓冲区中的多行.迷你缓冲区中的线被截断,也没有被包裹.
有没有办法为主编辑窗口启用行截断,只在迷你缓冲区中禁用它?
有没有办法为不同的文件类型获得不同的快捷方式?
我用它F12来编译.它运行make -f.我想F12跑步
Mx org-export-as-html
当我在Org模式.
我该如何编辑.emacs文件?目前只是:
(global-set-key [f12]'编译)
谢谢,
哈曼
我正在尝试学习Emacs并试图为我找到最好的键盘布局.有一件事让我烦恼.我在.emacs中添加了以下行
(global-set-key "\C-y" 'scroll-up)
(global-set-key "\M-y" 'scroll-down)
Run Code Online (Sandbox Code Playgroud)
当我按住Control并按y几次时,它会在每次按下时向下翻页y.
但是,当我按住Windows键(映射为Meta)并按y几次时,它只会在第一次按下时向上翻页,y然后所有后续按下y我都会在缓冲区中插入'y'字符.
页面可以像页面向下一样吗?我想按住Meta并继续按下y以滚动多个页面.
我在LENNART-69DE564上使用了2008-05-12的GNU Emacs 23.0.60.1(i386-mingw-nt5.1.2600)(打补丁).它是带有EmacsW32补丁的Emacs.这个Emacs有问题吗?Meta键问题?
我尝试了原始的GNU Emacs(没有修补),它可以正常工作Alt.但我的问题不是我想要在不释放任何键的情况下滚动.我释放按键y并按下它多次,但不想释放Meta按键.这里描述了同样的问题:
http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/f30f4b75a8b75b10
问题不在于我改变了键映射.看起来它是EmacsW32版本中的一个错误.以下是该问题的另一种描述: 未发布的Meta/Win修饰符
我不是在寻找关于C++开发的IDE建议.我已经找到了很多讨论,并尝试了EMACS,GVIM和Code :: Blocks.我比其他两个更喜欢Code :: Blocks.但看起来大多数开发人员社区都在使用EMACS或GVIM等工具.是否有一个原因?为什么Code :: Blocks使用较少?
我发现EMACS和GVIM对用户不太友好.你必须付出更多的努力来使它工作,但Code :: Blocks在这里占据优势.它易于启动和编译.或者我会错过什么?
谢谢
Emacs做一个窗口管理员做得很好.我一直在拆分我的Emacs框架,如下所示:
+---------------------------+
| | |
| | |
| | B |
| A | |
| | |
| | |
| |-------------|
| | C |
+---------------------------+
Run Code Online (Sandbox Code Playgroud)
C通常是一个具有某种长时间运行过程的终端,如Web服务器或守护进程.偶尔我会移动那里重新启动守护进程,但大多数时候我只想在A和之间交换B.我该怎样才能方便?
背景.我正在使用网表,一般来说,人们通过使用指定不同的层次结构/.但是,实际使用a /作为实例名称的一部分并不违法.
例如,X1/X2/X3/X4可能引用X4另一个名为的实例内的实例X1/X2/X3.或者它可能引用名为X3/X4在名为的实例X2内命名的实例内的实例X1.得到它了?
实际上没有"常规"字符不能用作实例名称的一部分,因此您使用不可打印的字符,或者......可能是标准0..127 ASCII字符之外的字符.
我以为我会尝试(十进制)166,因为对我来说它显示为管道:¦.
所以...我有一些C++代码使用¦层次分隔符构造路径名,所以上面的路径看起来像X1¦X2/X3¦X4.
现在GUI是用Tcl/Tk编写的,为了将其正确地翻译成人类可读的术语,我需要做类似以下的事情:
set path [getPathFromC++] ;# returns X1¦X2/X3¦X4
set humanreadable [join [split $path ¦] /]
Run Code Online (Sandbox Code Playgroud)
基本上,替换¦用/(我也可以用做到这一点[string map]).
现在,问题是,¦我从C++获得的字符串与¦我在Tcl中创建的字符串不匹配.即失败:
set path [getPathFromC++] ;# returns X1¦X2/X3¦X4
string match $path [format X1%cX2/X3%cX4 166 166]
Run Code Online (Sandbox Code Playgroud)
在视觉上,两个字符串看起来相同,但字符串匹配失败.我甚至尝试使用扫描来查看我是否混淆了位值.但
set path [getPathFromC++] ;# …Run Code Online (Sandbox Code Playgroud) 我收集了一个文件中的emacs自定义列表my-python-setup.el.我怎样才能确保emacs首先加载python-mode然后只在我编辑python文件时加载这个库?
我试过试试
(load-library "my-python-setup")
Run Code Online (Sandbox Code Playgroud)
在我的.emacs文件中,但是会为所有类型的文件加载这些自定义项.
这些自定义位于python-mode之上,auto-mode-alist当前值为("\\.py\\'" . python-mode).
我有这个清单:
("x" "y" "z")
Run Code Online (Sandbox Code Playgroud)
如何从列表中提取元素?(在这种情况下,我对列表中的第一个元素感兴趣,但我正在寻找一个通用的解决方案.)