Emacs 更改LispBox中的默认保存文件夹
所以我最终决定学习Lisp。我在阅读,我在使用(不是书中推荐的那种——现在已经没有了,但似乎这仍然是合适的) 到目前为止,在我的职业生涯中,我设法避免与emacs搏斗,但我想我生命的一部分已经结束:-)事实上,我有点激动-这是一个全新的世界 保存.lisp文件时,开箱即用的安装程序会将这些文件转储到Emacs 更改LispBox中的默认保存文件夹,emacs,lisp-in-a-box,Emacs,Lisp In A Box,所以我最终决定学习Lisp。我在阅读,我在使用(不是书中推荐的那种——现在已经没有了,但似乎这仍然是合适的) 到目前为止,在我的职业生涯中,我设法避免与emacs搏斗,但我想我生命的一部分已经结束:-)事实上,我有点激动-这是一个全新的世界 保存.lisp文件时,开箱即用的安装程序会将这些文件转储到lispbox-0.7文件夹中(该文件夹也是lispbox\u HOME env.var)。我的数学老师教我,“如果你不知道你在做什么,至少要干净利落。”所以我想至少把我的作业放在一个整洁的文件夹里。
lispbox-0.7
文件夹中(该文件夹也是lispbox\u HOME env.var)。我的数学老师教我,“如果你不知道你在做什么,至少要干净利落。”所以我想至少把我的作业放在一个整洁的文件夹里。我可以在保存/加载时指定完整路径。但是我可以告诉(lispbox | emacs | which)默认情况下使用不同的文件夹吗
如果有关系的话:我可能会更频繁地使用Windows版本,但我在Ubuntu上也有设置
我看了又看。我尝试将这些添加到.emacs
文件中(一次添加一个):
为了打开.emacs
文件,我使用了C-xc-f~/.emacs
如果我尝试更改LispBox快捷方式的“开始位置”属性,它将无法加载
M-xcd c:/work/lisp
确实有效,但每次启动LispBox时我都必须这样做
同时我在做什么:我在
lispbox-0.7
文件夹旁边创建了一个单独的lisp
文件夹。这样我就可以在任何文件名之前加上。/lisp/
。这并不是很糟糕,尤其是在选项卡自动完成的情况下。我对Lisp Box一无所知,而且我也不清楚您描述的所有内容。但事情是这样的
听起来您正在寻找一种方法,在启动Emacs时将c:/work/lisp
作为默认目录。为此,使用MS Windows快捷方式,将该文件夹放入开始位置
字段确实可以实现这一点。但是你说的是一个LispBox
快捷方式的开始于
。如果你说的是Emacs快捷方式,那么它应该可以工作
当然,您需要对文件夹使用Windows语法-不是c:/work/lisp
,而是c:\work\lisp
这就是问题所在吗
Windows快捷方式是一个Windows的东西。Emacs不同:它接受/
作为文件夹分隔符
提示:如果这解决了您的问题,您可能还希望在同一文件夹上以Dired模式启动Emacs,也就是说,如果该文件夹是您经常使用的文件夹。要做到这一点,请在命令行末尾添加该文件夹-同样,使用Windows语法,但在双引号之间:
c:\your\path\to\runemacs.exe "c:\work\lisp"
找到了
修改.emacs
无效的原因是lispbox.bat
文件。它有这样一行:
%EMACS% --no-init-file --no-site-file --eval=%TO_EVAL%
所以去掉了两个“否”参数,留下这个
%EMACS% --eval=%TO_EVAL%
…而且成功了
不过,这让我很担心。为什么默认设置不希望加载.emacs
文件?我想一旦我更好地理解了这一切,我就会有一个答案。直到那时,我恢复了上面的,改变了这行
set TO_EVAL="(progn (load \"lispbox\") (slime))"
…为了这个
set TO_EVAL="(progn (load \"lispbox\") (slime) (cd \"C:/work/lisp/\"))"
现在我很高兴。尝试从要保存文件的目录启动lispbox.bat。例如,从OS命令提示符:
cd c:\work\lisp
path-to-bat-file\lispbox.bat
您还可以在listbox.bat执行Emacs之前将cd刻录到c:\work\lisp中。对于Linux,它在lispbox.sh中如下所示:
#!/bin/bash
if [ "${0:0:2}" = "./" ]; then
export LISPBOX_HOME=`pwd`/../../..
else
export LISPBOX_HOME=`dirname $0`/../../..
fi
cd ~/work/lisp
export SBCL_HOME=${LISPBOX_HOME}/sbcl-1.0.42/lib/sbcl
exec ${LISPBOX_HOME}/Emacs.app/Contents/MacOS/Emacs --no-init-file --no-site-file --eval='(progn (load "lispbox") (slime))'
好建议,但不是这样。快捷方式将启动
lispbox.bat
文件,该文件将依次启动runemacs.exe
我很确定我已翻转/到\但可能没有。即使正确,也不起作用,即C:\work\lisp
。在这种情况下,如果init文件中的显式(setq默认目录“C:/work/lisp”)
不起作用,请在Lispbox Emacs代码中查找钩子或用户选项(自定义变量)。在Lispbox应用程序启动Emacs之后,您需要以某种方式评估这样一个sexp。试着问一下。我相信这是一个共同的需要。甚至可能会有一个常见问题解答(或者应该有)。邮件列表的链接断开了(不是你的错,它在Lispbox主页上断开了)。现在我有了我的答案,也许我会看看他们的github上有什么,如果没有,我会添加我的发现。
#!/bin/bash
if [ "${0:0:2}" = "./" ]; then
export LISPBOX_HOME=`pwd`/../../..
else
export LISPBOX_HOME=`dirname $0`/../../..
fi
cd ~/work/lisp
export SBCL_HOME=${LISPBOX_HOME}/sbcl-1.0.42/lib/sbcl
exec ${LISPBOX_HOME}/Emacs.app/Contents/MacOS/Emacs --no-init-file --no-site-file --eval='(progn (load "lispbox") (slime))'