在elisp中,有一个'if'的情况,我希望执行许多不同的事情:
(if condition
(do-something)
(do-something-else)
...)
Run Code Online (Sandbox Code Playgroud)
但是,(do-something-else)仅在else-case中执行.如何指定要执行的指令块?例如:
(if condition
(begin
(do-something)
(do-something-else)
...))
Run Code Online (Sandbox Code Playgroud) Go有适合的Emacs模式吗?没有分号,C模式不起作用.我找到的最好的是Karl Landstrom的JavaScript模式,因为JavaScript也不需要分号.
如何从emacs创建一个空文件,理想情况下是在一个直接缓冲区中?
例如,我刚刚以dired模式打开了一个Python模块,创建了一个新目录,在dired中打开了,现在需要__init__.py
在目录中添加一个空文件.
如果我使用,C-x C-f __init__.py RET C-x C-s
那么emacs不会创建该文件,因为没有对它进行任何更改.我必须输入文件,保存,删除我的输入,然后再次保存,以便工作.
谢谢
我试图搜索谷歌并查看手册,但仍然无法找到如何获得缓冲对象的主要模式.你能帮我一个例子或参考吗?谢谢
我能找到的唯一解决方案是在更改缓冲区然后更改回原始缓冲区后查询主模式.有没有更好的方法呢?
我最近换了几次计算机,在某个地方我丢失了我的.emacs.我正在尝试再次构建它,但是当我在它时,我想我会选择其他人使用的其他好的配置.
那么,如果你使用Emacs,你的 .emacs中有什么?
我现在非常贫瘠,仅包含:
(global-font-lock-mode 1)
你认为什么有用?
通常,当我在git中切换分支时,如果文件在emacs中打开,那么emacs会询问我是否要还原它们(因为它认为它们已在磁盘上更改),即使内容相同.
首先,如果磁盘上的内容与缓冲区中的内容相同,我想找到一种让emacs根本不问我的方法.
其次,我想要一个命令恢复(没有查询)我没有未保存更改的所有打开缓冲区,并向我查询那些确实有未保存更改的命令.
或者,我会接受有关其他解决方案,工作方式等方面的建议,我可以尝试.如果人们可以给我指点从哪里开始,我很高兴写emacs-lisp.
PS如果重要的话,我在OSX上使用Aquamacs.
编辑:
好吧,我发现revbuffs包几乎是我需要的.当然足以阻止我想尝试自己写任何新东西.(我将revbuff映射到Cmd-R,效果非常好.类似于其他Mac应用程序中的Cmd-R).
全局自动恢复模式将是一个非常好的解决方案,我希望我可以选择两个答案.我更喜欢revbuffs,仅仅是因为想要控制所发生的事情,可能是非理性的感觉.
我有点猜测,如果我从emacs中访问git,那么它可能会更容易处理,但我目前更喜欢通过命令行访问git.(我还没有使用emacs足够长的时间来使它成为我的操作系统).我会更彻底地调查magit.
EDIT2:
我已经使用magit一年了,并且强烈推荐它来处理emacs中的git.但是,每当我在emacs之外进行rebase时,我仍然会使用revbuff.
通常,最简单的调试方法是使用printf
.我该怎么做来调试emacs-lisp?如何从elisp打印emacs编辑器?或者有没有办法调试elisp代码?
例如,如何检查以下代码是否在.emacs
文件中运行?
(load "auctex.el" nil t t)
Run Code Online (Sandbox Code Playgroud) 我之前学过Clojure,非常喜欢这门语言.我也喜欢Emacs,并用Emacs Lisp攻击了一些简单的东西.有一件事使我无法在精神上做任何与Elisp有关的事情.这是动态范围的概念.我只是害怕它,因为它对我来说太陌生,闻起来像半全局变量.
因此,对于变量声明,我不知道哪些事情是安全的,哪些是危险的.根据我的理解,使用setq设置的变量属于动态范围(是吗?)让变量怎么样?在某个地方我读过,让你可以做一些简单的词法范围,但在其他地方我读过,让vars也是动态范围的.
我最担心的是我的代码(使用setq或let)意外地从我调用的平台或第三方代码中破坏了一些变量,或者在调用之后我的局部变量意外地搞砸了.我怎么能避免这个?
是否有一些简单的经验法则我可以遵循并确切地知道范围发生了什么,而不会被一些奇怪的,难以调试的方式咬住?
假设我有变量dir
并且分别file
包含表示目录和文件名的字符串.emacs lisp将它们连接到文件的完整路径的正确方法是什么?
例如,如果dir
是"/usr/bin"
和file
是"ls"
的话,我想"/usr/bin/ls"
.但是,如果不是dir
就是"/usr/bin/"
,我还是希望同样的事情,没有重复的斜线.
Emacs Lisp有哪些REPL?
Emacs中只有一个吗?
是否有一些在Emacs外的终端内运行?