Tag: elisp

emacs list-buffers行为

在GNU emacs中,每当我按下Ctrl-x Ctrl-b查看所有缓冲区时,窗口就会被分割以显示缓冲区列表,或者如果我的窗口已经被分割为2(例如,我将有一个shell在下面的窗口中运行),缓冲区列表出现在另一个窗口中。 我希望的行为是让缓冲区列表出现在我的活动窗口中,这样我可以select我想要的缓冲区并继续在同一个窗口中工作,而不必按Ctrl-x Ctrl-o到另一个缓冲区,select缓冲区( 回车 ),并在另一个窗口中编辑该缓冲区…我已经google了,但它似乎并不是一个共同的愿望? 我想知道是否有人有elispy(或其他)解决scheme?

分析行为exceptionEmacs Lisp的提示?

我定制了很多Emacs。 最近,我添加了一些东西到我的.emacsconfiguration零星挂钩我的CPU在100%,但我真的不知道它是什么。 如果我按了一堆Cg,最终我会在小缓冲区下面得到一个消息,询问我是否要自动保存我的文件,然后如果我想完全中止emacs。 如果我一直说不,并保持按下Cg,最终我可以恢复正常运行emacs。 一个小时左右,它会再次发生。 我可以继续像我一样,评论我最近添加的各种东西,重新启动emacs,试图缩小罪魁祸首,但这是慢的。 有没有一种方法可以直接查看emacs来找出哪些lisp函数占用CPU?

如何在启动时在Windows上最大化Emacs?

这让我疯狂:我只是希望Emacs最大限度地发挥我在启动时的任何屏幕分辨率。 理想情况下,我喜欢跨平台(Windows和Linux)解决scheme,可以在任何屏幕分辨率下工作,但我甚至无法使用Windows XP甚至是硬编码的大小。 这是我试过的: 用适当的高度/宽度设置初始帧 设置默认帧一列表 (Windows特定的东西)发送消息到emacs窗口告诉它最大化通过(w32-send-sys-command 61488) 试过这个我在某处find的function: (defun toggle-fullscreen () "toggles whether the currently selected frame consumes the entire display or is decorated with a window border" (interactive) (let ((f (selected-frame))) (modify-frame-parameters f `((fullscreen . ,(if (eq nil (frame-parameter f 'fullscreen)) 'fullboth nil)))))) 尝试在我的init文件的开始和结束上述方法,以尝试消除其他初始化事件的干扰。 不幸的是,以上都没有工作! 对于上面的一些,我可以看到我的emacs窗口正确resize,然后再恢复到较小的默认大小。 如果在初始化后运行上面的方法,emacs窗口会正确resize。 这个世界正在发生什么? [PS还有其他SO问题,但没有答案工作] 更新: 答案让我觉得我的init文件中的其他东西是造成这个问题。 而且的确如此! 经过一番尝试,我find了罪魁祸首。 […]

混淆了Emacs自定义系统

有几个类似的设置function: set&setq 默认设置 defcustom 自定义设定值 自定义设置variables 自定义设定值 自定义设置的variables 那么,这些function有什么区别呢? 如果我想将自己的偏好设置为加载项,对于这些情况: 如果一个variables设置为defcustom,哪个设置函数会更好? 那么defvar的variables设置呢?

在Emacs缓冲区中渲染Markdown

是否可以使用Emacs自己的缓冲区文本格式化function在Emacs缓冲区中呈现Markdown? graphics环境中的Emacs具有丰富的文本显示function(字体样式,颜色,链接,甚至图像),所以它应该是很有可能的。 有没有现有的实现? 请注意,这个想法是让渲染的Markdown成为本地Emacs格式的文本,可以像Emacs中的其他文本一样进行导航和操作。 因此,渲染到embedded到Emacs缓冲区中的图像的解决scheme在这里是不可取的。 另外请注意,这不是关于编辑 Markdown 的模式 ,而是为了在Emacs缓冲区中呈现Markdown。 它应该最好是一个纯粹的Emacs Lisp解决scheme的可移植性。

如何debuggingelisp?

通常最简单的debugging方法是使用printf 。 我能做些什么来debuggingemacs-lisp? 如何从elisp打印emacs编辑器? 或者有什么方法来debuggingelisp代码? 例如,如何检查以下代码是否在.emacs文件中运行? (load "auctex.el" nil tt)

如何使用Emacs Lispdynamic范围界定?

我以前学过Clojure,非常喜欢这种语言。 我也爱Emacs,并用Emacs Lisp破解了一些简单的东西。 但是有一件事情可以让我在精神上阻止Elisp做更多的事情。 这是dynamic范围的概念。 我只是害怕它,因为它对我来说太陌生了,闻起来像是半全球variables。 所以对于variables声明,我不知道哪些事情是安全的,哪些是危险的。 从我所了解的情况来看,使用setq设置的variables属于dynamic范围(是吗?)让variables怎么样? 我读过的一些地方,让你做简单的词法作用域,但是我读的其他地方,让vars也dynamic范围。 我最担心的是我的代码(使用setq或let)意外地打破了我调用的平台或第三方代码中的一些variables,或者在这样的调用之后,我的本地variables意外地混乱了。 我怎样才能避免这一点? 是否有一些简单的经验法则,我可以遵循,准确地知道范围发生了什么,而不会被一些奇怪的,难以debugging的方式咬伤?

Emacs的lisp,如何获得缓冲区的主要模式?

我试图search谷歌,看手册,但仍然无法find如何获得缓冲区对象的主要模式。 你能帮我一个例子或参考。 谢谢 我只能find的解决scheme是在更改缓冲区后查询主模式,然后更改回原始缓冲区。 有没有更好的方法来做到这一点?

在使用emacs shell时清除shell的命令

在emacs中使用shell时,是否有内置命令来清除shell? 如果没有,是否有elisp函数来实现相同?

如何在Git中切换分支时让Emacs恢复所有未更改的缓冲区?

通常,当我在git中切换分支时,如果文件在emacs中打开,那么emacs会询问我是否想恢复它们(因为它认为它们已经在磁盘上进行了更改),即使内容是相同的。 首先,如果磁盘上的内容与缓冲区中的内容相同,我想找一个方法让emacs完全不问这个问题。 其次,我想要一个命令(没有查询)恢复所有我没有未保存更改的打开的缓冲区,并询问有关未保存更改的那些缓冲区。 或者,我会接受有关其他解决scheme,工作方式等的build议,我可以尝试。 如果人们可以给我指点从哪里开始,我很高兴写emacs-lisp。 PS我在OSX上使用Aquamacs,如果重要的话。 编辑: 那么,我已经find了这个revbuffs包,它几乎是我所需要的。 当然足以阻止我想尝试写新的东西。 (我把revbuffs映射到Cmd-R,这很好用,类似于其他Mac应用中的Cmd-R)。 全球自动还原模式将是一个完美的解决scheme,我希望我可以select两个答案。 我宁愿只是因为想要控制发生的事情,可能是非理性的感觉。 我有点猜测,如果我从emacs中访问git,那么它可能会更容易处理,但我目前更喜欢通过命令行访问git。 (我还没有足够长的时间使用emacs使它成为我的操作系统)。 我会更详细地调查magit。 EDIT2: 我已经使用了一年的magit,并且可以强烈推荐它在emacs中处理git。 但是,当我在emacs之外进行rebase的时候,我仍然使用revbuffs。