Emacs

使用,扩展或开发Emacs的人员的问答

2
如何防止命令使用特定的Windows?
通常,我将一个框架分为四个窗口,其中底部的两个专门用于我的*compilation*和*grep*缓冲区。当浏览编译错误时,next-error最终将我的*grep*缓冲区替换为目标文件之一。 如何配置next-error为不使用包含*grep*缓冲区的窗口? 我的特定用例是next-error命令,但也欢迎提供更一般的答案。
14 buffers  window 

2
如何为缓冲区和模式行设置不同的字体大小?
我的init.el文件中包含以下行,以设置所有框架中字体的大小: (push '(font . "DejaVu Sans Mono-10") default-frame-alist) 它可以工作,但我想在所有缓冲区中使用较大的字体,同时在模式行中保留较小的字体(这样它可以容纳更多信息并减少干扰)。想法是自动设置此设置,而不必为每个打开的缓冲区使用Cx C- +更改字体大小。 我正在使用从GNU / Linux系统上的主干编译的Emacs 25.0.50.1。 编辑:刚刚添加了一个答案,显示了如何完成。

3
关闭所有待处理的括号
在编写Lisp代码时,有时我会陷入一个嵌套的表达式中,而我想要的只是插入所有缺少的右括号。现在,我只是插入它们,直到获得不匹配的paren,但这并不是很有效。 是否有任何命令可以插入所有缺少的括号? 仅供参考,我正在使用smartparens自动插入匹配的paren。不过,有时候我只需要这样做。

2
磁力推/拉演出进度
我缺少有关推/拉进度的视觉指示。执行适当的命令后,magit打印 推送到domain.tld:repo.git 但是,没有进一步说明进展情况。在较慢的网络连接上,或者如果要传输的数据很大,该过程可能会花费一些时间,因此,如果magit可以给出进度的指示,那将是很好的。 自然地,*magit-process*缓冲区包含git自己的进度指示,但是您如何告诉magit将相关部分传递到回声区呢? 更好的是将进度指示器添加到模式行,从而允许用户关闭magit-status缓冲区并继续git进行繁重的工作。 编辑:我不是在寻找magit推动/拉动的迹象,我知道那是因为我只是打P/ F。我想看看它在推/拉的哪个阶段(即(解包),传送)以及该动作已经执行了多少。 记住,如果您git通过终端运行,它将打印出类似 推送到domain.tld:repo.git 计数对象:29,已完成。 书写对象:100%(15/15),249.80 KiB | 28.00 KiB / s,已完成。 总计15(增量10),重用0(增量0) 到domain.tld:repo.git 5436bd0..d9ec32a master-> master 更新本地跟踪参考'refs / remotes / origin / master' [显然,这是动态输出的快照]。我希望从emacs中显示该进度。 Edit2:在github上打开功能请求
14 magit 


2
如何在任意模式下内联预览TeX公式?
如何在AUCTeX或org-mode之外的其他模式下获取TeX预览?我很想看看jabber,erc和markdown中的TeX方程。如果我曾经转而使用Emacs收发电子邮件,可能我也想在那里查看预览。
14 auctex  tex 

1
在Dired缓冲区中,将点放置在该目录中最重要的文件上
90%的时间我访问Emacs中的目录时,我要做的第一件事是将鼠标指向一个特定的文件并打开它。很多时候,我需要打开的文件非常可预测。例如: 如果.tex此目录中有文件,我通常会直接转到master.tex。 在Android项目的根源,通常是AndroidManifest.xml。 在我开发emacs软件包的目录中,它几乎始终是软件包的主要源文件。这通常是(但并非总是).el此目录中的唯一文件。 当我打开这些目录时,有什么方法可以自动将点放置在这些文件上吗? 这将提供很多便利(因为我可以通过单击来打开它们RET),但是仍然可以灵活地访问其他文件。
14 dired 

2
如何找出键序列真正的作用
我不时观察到编辑文本时的意外行为。我的第一个方法通常是C-h k用来查找给定键序列正在调用的功能。但是,有时文档与观察到的行为不一致。在这些情况下,我通常假定其他软件包已挂接到该函数或键序列中,并且正在修改其行为。 我如何找出 哪些 功能挂接到我的按键序列中? 我最近遇到的一个示例是,我按下了"键,并且在活动区域​​的开始和结尾处都插入了引号。我怀疑这不是Emacs的默认行为,因此我过去常常C-h k "查明实际上是在调用什么函数。 该describe-key文件告诉我,该函数self-insert-command被调用,这是一个内置的功能。长话短说,经过反复试验,我能够确定该行为是由引起的electric-pair-mode。将来,有没有比一次关闭一个可疑包裹直到找到罪魁祸首的结论更快的方法呢?
14 keymap  hooks 

3
为控制台和GUI启动两个单独的emacs守护程序
通常,我使用GUI启动emacs,然后立即使用启动服务器(server-start)。现在,我可以从终端通过emacsclient -n <file>或从文件浏览器轻松地将文档打开到现有的emacs会话中。 但是,有时我想使用在终端中运行emacs emacsclient -t。在编写git commit日志或执行其他非常小的任务时,这种情况最常见。在这些情况下,我的初始化文件已加载到emacs的GUI实例中,这意味着我没有获得任何针对TTY emacs的自定义设置。 我知道我可以跑步 emacs -nw -q -l "some-custom-init-file.el" 但这每次都会重新加载所有软件包。我可以两全其美吗?有没有一种方法可以设置“ TTY守护程序”,以便我可以使用单独的自定义项在终端中运行,而不是在现有emacs窗口中访问文件?
14 daemon 




1
禁止警告:分配给自由变量(和其他变量)
字节编译emacs lisp文件时,如何抑制“分配给自由变量”警告? 实际上,我最感兴趣的是在使用flycheck时将其抑制为特定缓冲区,但是我知道这只是传递给字节编译器。 获取所有可以抑制的警告/错误的列表也将是一件好事。 更新: 为了完整起见,请允许我澄清禁用编译器警告的原因很多(与语言无关)。一些示例:简化将旧代码转换为lint强制框架的过程,以便在实时上下文中运行草稿文件和配方,在解决较高优先级问题的同时消除噪声,或者因为编译器是错误的。

2
为什么在Windows上启动Emacs比在Linux上启动需要更长的时间?
组态: 一个系统 OS Windows 10双启动 操作系统Ubuntu 15.10作为双启动 具有GUI的Emacs 25.0.1 我的dot-emacs文件.emacs.d夹中有一个文件,所有内容(这些包也位于中.emacs.d)。所有这些文件都位于一个Dropbox文件夹中。 在Windows 10上:我将Windows中的home文件夹中的dot-emacs和链接.emacs.d到Dropbox中的位置。 在Linux / Ubuntu 15.10上:我也将dot-emacs和链接到.emacs.d了我的Ubuntu主文件夹(/ home / user /)到Dropbox中的位置。 因此,与Emacs相关的所有文件都存储在跨各种操作系统的一个Dropbox文件夹中。 Windows和Linux在同一磁盘上以双重引导的方式运行,因此在相同的硬件上也是如此。 当我在Windows上启动Emacs时,需要7.4秒才能启动。 当我在Linux上启动Emacs时,仅需2.3秒即可启动。 带有图形GUI的Emacs和版本25.0.1都可以使用。两种操作系统都位于同一SSD驱动器上的同一台计算机上。因此它也是相同的硬件。 在操作系统(Windows 10和Ubuntu 15.10)上,以下内容相同: Emacs软件25.0.1版 配置文件(.emacs.d) 一个硬盘(.emacs.d中的所有文件)和两个OS都在同一SSD上。 硬件 区别之一: Windows或Linux的编译Emacs分别在Windows或Linux平台上运行。那是唯一的区别。 我在努力理解为什么Emacs在Ubuntu上的启动时间比Windows短得多。
14 start-up 

2
Tramp模式比使用终端ssh慢得多
我在OSX Yosemite上使用的是Macports风格的Emacs,并且在没有任何解决方案的情况下,查看了Tramp上的每个线程都很慢。 可以使用陷阱,但每个动作之间大约有100毫秒的延迟。在服务器端这不是问题,因为如果我仅使用terminal / iTerm将ssh切换到同一服务器,则此延迟不存在。 我认为问题可能仅限于编辑文件,但事实证明它无处不在。无论我是仅使用远程外壳,还是仅按M-x(使用头盔),都被延迟了。 我已经尝试过ssh,scp和rsync作为连接方法,而没有任何解决方案。也尝试过ControlMaster auto没有任何效果。 还有其他人有这个问题,并且能够解决吗?
14 shell  tramp  remote 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.