Tag: emacs

如何改变拆分屏幕emacs窗口的大小?

我有emacs水平分割 – 顶部我正在编辑Perl代码,底部是壳。 默认情况下,emacs使两个窗口的大小相等,但是我希望shell缓冲区更小(也许是一半的大小)。 我想知道我该怎么做。

使用Emacs以recursion方式查找并replace尚未打开的文本文件

作为这个问题的一个后续,它试图找出如何做这样的事情应该很容易,尤其是阻止我更习惯于使用Emacs,而是启动我已经熟悉的编辑器。 我经常在编辑多个文件时使用这个例子。 在Ultraedit中,我会做Alt + s,然后p显示一个对话框,其中包括以下选项:查找(包括跨多行使用正则expression式),replace为,在文件/types,目录,匹配大小写,匹配整个字,列表更改文件和search子目录。 通常我会先用鼠标点击拖动select我想要replace的文本。 只使用Emacs本身(在Windows XP上),无需调用任何外部工具,如何用*.c和*.h文件中的bar \ nbazreplace所有foo \ nbar文件夹以及其下的所有文件夹。 也许Emacs并不是最好的工具,但是如何用最简单的命令轻松完成呢?

如何在打开文件之前拦截文件并决定哪个文件

我正在寻找一些关于如何在打开文件之前拦截一个文件的想法,并决定打开哪个文件。 我有一个由frame-bufs克尔 – https://github.com/alpaker/Frame-Bufs – frame-bufs的修改版本 – 与当前版本的Emacs中继工作。 我写了一个函数,将正在打开的文件与具有焦点的帧相关联。 我想进一步,并build立一个file types和buffer names ,将永远与一个特定的框架相关的列表。 我正在考虑一个这样的function: * If the file being opened is (or (eq major-mode 'text-mode) (eq major-mode 'latex-mode) ) (switch-to-frame "TEXT") * If the buffer being opened is (or (equal (buffer-name) "Folder") (equal (buffer-name) "Summary") ) (switch-to-frame "WANDERLUST") * After completing either of the above, […]

如何在Windows上禁用emacs中的嘟嘟声

您好我是Emacs的新手,我在Windows机器上下载了GNU emacs。 我刚刚完成了这个简短的教程,但是我发现每当我打开一个文件的开始/结束时,都会发出一声嘟嘟的声音,在其他许多情况下,这对我来说有点令人不安。 我在网上search,我发现有人说这个 (setq visible-bell 1) 在我的.emacs文件,但我不知道如何做到这一点。 首先,我的.emacs文件在哪里,它是什么? 还是有另一种方法来做到这一点? 我的意思是在emacs窗口菜单中有选项 – >自定义Emacs,但我无法find设置的位置。 除非你已经知道它在哪里,否则我觉得在那里找东西很难。

自动禁用特定主要模式的全局副模式

我已经居中游标模式激活globaly,如下所示: (require 'centered-cursor-mode) (global-centered-cursor-mode 1) 它工作正常,但有一些主要的模式,我想自动禁用它。 例如粘液重覆和壳。 还有一个问题是关于同样的问题,但另一个小问题。 不幸的是,答案只能提供这种特定次要模式(global-smart-tab-mode)的解决方法,它不适用于居中游标模式。 我试过这个钩子,但是没有效果。 该variables不会改变。 (eval-after-load "slime" (progn (add-hook 'slime-repl-mode-hook (lambda () (set (make-local-variable 'centered-cursor-mode) nil))) (slime-setup '(slime-repl slime-autodoc))))

为什么emacs为修改的文件创build临时符号链接?

当我修改缓冲区时,Emacs会自动在正在编辑的文件(例如foo.c)的相同目录中创build临时符号链接: .#foo.c -> user@host.12345:1296583136 其中“12345”是Emacs的PID(我不知道最后的数字是什么意思)。 为什么Emacs创build这些链接,我如何阻止它做到这一点? 请注意,我closures了自动保存模式( Mx auto-save-mode )并禁用了备份文件( Mx set-variable -> make-backup-files -> nil )。 当我保存一个修改后的缓冲区,或者撤消对它的修改时,符号链接就消失了。 特别是,我试图阻止Emacs创build这些链接,因为它们导致目录时间戳被修改,这导致我们的构build系统重build整个模块,而不是编译和链接一个更改的文件:/ 感谢您的任何意见! 更新:为了防止Emacs永久创build联锁文件,您可以更改src/filelock.c并构build一个自定义二进制文件: void lock_file (fn) Lisp_Object fn; { return; // Unused code below… } 更新2:Arne的答案是正确的。 现在可以在最新的Emacs(24.3.1)中禁用锁文件,方法是将其添加到.emacs文件中: (setq create-lockfiles nil)

我为什么要使用IDE?

在另一个问题上, 马克高度评价IDE,说:“有些人还不知道”为什么“他们应该使用一个…”。 作为使用vim进行编程的人,在我的大多数同事使用vim或emacs进行所有工作的环境中工作,IDE的优点是什么? 我为什么要用一个? 我相信这对某些人来说是一个负担的问题,而且我对开始一场激烈的战争并不感兴趣,所以请只回答你认为基于IDE的方法优越的原因 。 我不知道为什么我不应该使用IDE; 我已经不使用一个。 我有兴趣听到“围墙的另一边”,可以这么说。 如果您认为IDE可能适用于某些types的工作,但不适用于其他types的工作,则我也有兴趣了解原因。

Emacs 24包系统初始化问题

在我看来,Emacs 24内置的新Package包在正确加载和初始化已安装的软件包时有一些缺陷。 最近,我升级到Emacs 24.1.1,这是在2012年6月10日发售,我一直在尝试使用内置的包系统,并已经安装了几个包使用它,但他们都有类似的问题有关自动加载和初始化。 例如,我使用了一个名为smex的包,它提供了使用Mx和弦的增强function。 它需要你为Mx定义一个密钥,所以我在init.el文件中添加了(global-set-key (kbd "Mx") 'smex) 。 但是,启动emacs后,我按Mx和弦,并得到消息“符号的函数定义是void:smex” …如果我也(require 'smex)我(require 'smex)在我的init.el文件中,我得到错误消息“文件错误:无法打开加载文件,smex“ 将smex的位置添加到加载pathvariables使得它可以像预期的那样工作,但是,似乎打败了首先有一个包系统的整个目的… 有什么想法吗? 现在有没有更好的办法,还是我们生活在这个限制之中?

全局覆盖Emacs中的键绑定

我怎样才能设置一个全局覆盖的键绑定,并优先于该键的所有其他绑定? 我想覆盖所有主要/次要模式映射,并确保我的绑定始终有效。 这当然不起作用: (global-set-key "\Ci" 'some-function) 它以text-mode ,但是当我使用lisp-mode , Ci被反弹到lisp-indent-line 。 我可以在lisp-mode和每个其他模式下单独重写这个绑定,但是必须有一个更简单的方法。 每次我为新的文件types安装一个新的模式时,我都必须回去检查一下,确保我的所有密钥绑定都不被新模式覆盖。 我想这样做,因为我想模仿我已经学习和从其他编辑根深蒂固的绑定。

我如何让Git使用我选择的编辑器进行提交?

我宁愿在Vim中编写我的提交消息,但是它在Emacs中打开它们。 我如何配置Git始终使用Vim? 请注意,我想要在全球范围内执行此操作,而不是针对单个项目。