【问题标题】:How to change emacs config in Lisp In A Box如何在 Lisp In A Box 中更改 emacs 配置
【发布时间】:2010-02-15 02:29:34
【问题描述】:

我做程序员已有十年了,但我相信这是我第一次在论坛上提问。我只是想不通,也无法在网上找到答案。

我正在尝试打开 CUA 模式,以便 Windows 用户更能忍受 emacs(正常的复制粘贴功能)。我正在运行 Windows 7 并通过 Lisp In A Box 包安装了 emacs。我了解我需要在 .emacs 文件或 init.el 文件中添加一行。我不确定是哪个,但在我的 Lip In A Box 安装目录中都找不到。 emacs 软件包安装也没有附带任何教程或帮助文件,因此很难找到它。

我被卡住了,非常感谢任何帮助!

【问题讨论】:

  • 如果您没有 CUA,请安装它。不过,我猜想它捆绑了一个较新的 Emacs。当 Emacs 启动并且尚未加载时,您需要加载它。如果它在 Emacs 加载路径中,请使用 (require 'cua)。见emacswiki.org/CuaMode。然后打开它。 (cua模式t)。您也可以使用函数(LOAD some-pathname)来加载文件。
  • @Rainer:根据 nitpicker 的指南,LOAD 应该是小写的,所以(加载一些路径名)。此外,(load-file some-pathname) 是一个不那么可怕的变体。
  • 'load' 是一个 Lisp 函数。您可以从初始化文件中使用它。 'load-file' 没有什么不同,只是它被认为是作为扩展命令调用的。

标签: emacs lisp elisp lisp-in-a-box


【解决方案1】:

可以通过查看this similar question 的答案找到 .emacs。

关于文档和教程,您为“Lisp in a Box”提供的链接看起来像:

如果你是 Emacs 的新手,那是 建议你阅读 Emacs 您可以从中访问的教程 使用 Emacs 进入帮助菜单, 或者通过输入Control-h,放手, 并点击 t。更广泛的手册 也可以从帮助菜单中获得, 或在网上 http://www.gnu.org/software/emacs/manual/.

这听起来像是有手册,当然还有教程(我粗体显示了进入教程的方向)。

至于其他获取信息的地方,有screencasts on the wiki的集合。

您的问题没有指定是否要向 .emacs 添加什么来激活 CUA 模式。您可以查看CUA mode documentation on the wiki(其中包含指向手册的链接)。最小的安装只是将它添加到您的 .emacs 中:(cua-mode t)

【讨论】:

    【解决方案2】:

    对于 GNU/Emacs,您可以选择使用以下三个文件名中的任何一个作为启动配置文件:

    ${HOME}/.emacs
    ${HOME}/.emacs.el
    ${HOME}/.emacs.d/init.el
    

    在三个选项中选择一个然后坚持下去可能是个好主意 - 第一个似乎是使用最广泛的一个。在任何情况下,${HOME} 代表你的主目录——它可能与 Lisp In A Box 安装目录不同!

    来自 Unix 传统,Emacs 将 ~(波浪号)理解为您的主目录的缩写,因此您可以通过键入以下内容访问 .emacs 文件:

    C-x C-f ~/.emacs [ENTER]
    

    (请注意,大写的 C 是 CTRL 键和第二个键的组合的 Emacs 标准符号,即在这里您按下代表“查找文件”的 CTRL-x CTRL-f,然后会询问您框架底部的文件名(又名迷你缓冲区)。)

    如果这是您的第一次自定义,您只会看到一个空缓冲区。输入

    ;; start CUA mode every time Emacs starts
    (cua-mode t)
    

    并使用 C-x C-s 保存缓冲区。

    下次启动 Emacs 时,CUA 模式应该会自动开启。

    【讨论】:

    • 感谢您的帮助,这正是我所困惑的!但是,我仍然遇到 CUA 模式的问题。看来我没有安装库,所以我继续从cua.dk/cua.el 下载了包。我将它放在多个位置,包括我的根目录,但我看到“.el”文件分散在整个文件结构中?按照指示,我对 cua.el 文件进行了字节编译。但是我的“消息”缓冲区中仍然出现错误:加载“c:/.emacs”时发生错误:符号的函数定义为无效:cua-mode
    • 正如您下载的 cua.el 文件所述,您实际上必须在 .emacs 中添加两行(我已相应地更新了我的原始帖子)。为了让 emacs 找到 cua.el 文件,您还必须调整您可以执行的加载路径变量,例如,使用命令 (add-to-list 'load-path "/path/to/dir/包含/cua.el")
    • 仍然没有运气,即使添加了该行。这个windows程序员放弃了。
    • 不要这么快放弃...在这里,试试这个:为命令“describe-variable”键入 C-h C-v,然后在提示符处键入“load-path”(不带引号)在小缓冲区中。你会得到一个(可能)长的路径列表,显示在一个新的缓冲区中。是否列出了包含您的 cua.el 文件的目录的路径?
    • 等一下...您链接的 Lisp-in-a-box 网站声明它使用 GNU Emacs 21.3——并且该版本已经内置了 cua-mode!这是个好消息,因为您应该能够忘记所有关于加载路径等的废话。这实际上应该有效:删除之前添加到 .emacs 文件中的所有行。相反,只添加一行:“(cua-mode t)” - 不带引号 - 保存并重新启动 Emacs。重要提示:请注意,该行都是小写的。我已经用 Emacs 22.1.1(虽然在 Linux 上)试过这个,它对我来说很好用。为你祈祷。
    【解决方案3】:

    其他人告诉你的是真的:只需将 (cua-mode t) 添加到您的 dotfile 就足够了。但是: Lisp in a box' Emacs 默认情况下不加载此文件。 因此,请务必编辑快捷方式,以便它加载点文件。这很重要,因为否则你会得到奇怪的行为,你会在点文件中添加正确的行,启动 emacs,然后不会获得 cua 模式。那会很糟糕。

    这样做的原因是为了确保它每次都启动一个普通的 emacs,而不是找到,比如 C:/_emacs 并加载它,而是给你另一个用户的自定义,让你感到困惑。

    不加载初始化文件的标志是-q或--no-init-file。还要确保 --no-site-file 不存在。

    (我意识到这是一篇旧帖子,但我在寻找相关内容时发现了这个,我不希望人们因为一些不起作用的东西而沮丧地离开。)

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多