小编dgt*_*zed的帖子

在使用leiningen和swank/slime的emacs中运行clojure测试时停止无限循环

在某些类型的代码中,相对容易在不吹动堆栈的情况下导致无限循环.使用clojure-test测试这种性质的代码时,有没有办法在不重启swank服务器的情况下中止当前运行的测试?

目前我的工作流程涉及到

$ lein swank
Run Code Online (Sandbox Code Playgroud)

使用emacs连接到swank slime-connect,然后切换到测试,执行C-c C-,,测试运行直到无限循环,然后返回,但是一个cpu仍然在测试中流失.我发现阻止这种情况的唯一方法是重新启动lein swank,但似乎这是一个相对常见的问题?谁有更好的解决方案?

emacs clojure slime swank leiningen

12
推荐指数
1
解决办法
2475
查看次数

使用符号链接来ruby可执行文件时查找相关库

想象一下,你有一个可执行文件foo.rb,库bar.rb按以下方式排列:

<root>/bin/foo.rb
<root>/lib/bar.rb
Run Code Online (Sandbox Code Playgroud)

在foo.rb的标题中,您将以下要求放入bar.rb中引入功能:

require File.dirname(__FILE__)+"../lib/bar.rb"
Run Code Online (Sandbox Code Playgroud)

只要对foo.rb的所有调用都是直接的,这就可以正常工作.如果您将$ HOME/project和symlink foo.rb放入$HOME/usr/bin,则__FILE__解析为$HOME/usr/bin/foo.rb,因此无法找到bar.rb与dirname相关的位置foo.rb.

我意识到像rubygems这样的打包系统通过创建一个命名空间来搜索库来解决这个问题,并且还可以使用$:include 来调整load_path $HOME/project/lib,但似乎应该存在一个更简单的解决方案.有没有人有这个问题的经验,并找到了有用的解决方案或食谱?

ruby symlink

5
推荐指数
1
解决办法
1350
查看次数

如何确保关联列表在Emacs中维护唯一键

考虑到键添加到关联列表的频率auto-mode-alist,我认为有一些习惯方法用于维护具有唯一键的关联列表,但尚未遇到它.

假设我执行以下操作:

(setq alist '())
(add-to-list 'alist '(a . 1))
(add-to-list 'alist '(a . 2))
(add-to-list 'alist '(b . 3))
Run Code Online (Sandbox Code Playgroud)

运行之后,alist包含((b . 3) (a . 2) (a . 1)).我看到add-to-list可以选择compare-fn,所以我认为有一些方法我可以传递得到((b . 3) (a . 1))结果.我也知道我可以使用哈希表,但很奇怪如何用关联列表惯用它.

emacs elisp

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

标签 统计

emacs ×2

clojure ×1

elisp ×1

leiningen ×1

ruby ×1

slime ×1

swank ×1

symlink ×1