小编phi*_*ils的帖子

在elisp中异步等待进程完成?

我希望能够以异步方式等待进程,例如:

(start-file-process "my-process" "*my-process*" "do" "something")
(on-finish "my-process"
    (do-something-else))
Run Code Online (Sandbox Code Playgroud)

emacs asynchronous elisp

3
推荐指数
1
解决办法
668
查看次数

在 Emacs 中使用多个光标设置任意光标位置?

我想用相同的字符串修改文件的不同部分。所以我在 emacs 中安装了多光标。但不幸的是,我不能做(简单?)标记文本的不同部分并开始编辑的事情。

我检查过的每个命令似乎对做我想做的都没有用。例如,考虑我需要编辑第 10 行的开头和第 34 行中间的一个字符。我该怎么做?

emacs

3
推荐指数
1
解决办法
451
查看次数

在 emacs term-mode 中禁用包

我有一个不适合 ansi-term 的包(evil)。当 term-mode 处于活动状态时,我试图让 emacs 禁用邪恶模式。我正在使用以下命令尝试这样做

(add-hook 'term-mode-hook (lambda() (evil-mode -1)) )
Run Code Online (Sandbox Code Playgroud)

但是,一旦我打开 ansi-term,这会以某种方式禁用除 term-mode 之外的所有模式中的邪恶模式。任何帮助,将不胜感激。

emacs evil-mode

2
推荐指数
2
解决办法
1846
查看次数

Symbol的函数定义为void:elpy-enable

我正在使用 Emacs 24 并尝试使用该elpy包,但收到错误:

“符号的函数定义无效:elpy-enable”

(package-initialize)
(elpy-enable)
(elpy-use-ipython)
Run Code Online (Sandbox Code Playgroud)

我正在使用的模式(elpy)只是说将这些行添加到我的 .emacs 文件中,一切都会好起来的(我已经在 python 端安装了这个模式)。

加载 emacs--debug-init提供以下内容

  (elpy-enable)
  eval-buffer(#<buffer  *load*> nil "/home/tk12098/.emacs" nil t)  ; Reading at buffer position 354
  load-with-code-conversion("/home/tk12098/.emacs" "/home/tk12098/.emacs" t t)
  load("~/.emacs" t t)
  #[0 "\205\262
Run Code Online (Sandbox Code Playgroud)

队伍开始#[0 "....似乎要持续一段时间。

我应该如何解决这个问题?

emacs

2
推荐指数
1
解决办法
4038
查看次数

emacs跨文件键盘宏

我如何设置宏来处理多个文件?

例如,假设我有多个角度应用程序,我想为每个模块添加一个注射器?

所以对于每个这样的文件

./apps/app-name/index.js
Run Code Online (Sandbox Code Playgroud)

我想找到第一个例子

angular.module('module-name', ['list', 'of', 'injectables']);
Run Code Online (Sandbox Code Playgroud)

要么

angular.module('other-module-name', [
  'list',
  'of',
  'injectables']);
Run Code Online (Sandbox Code Playgroud)

并在列表的末尾添加另一个项目.

emacs macros

2
推荐指数
1
解决办法
416
查看次数

Emacs shell-mode:防止 RET 从任何地方发送输入

正如文档所说, RET 将comint-send-input在 shell 模式下的任何地方。问题是,如果您错误地在任何行上按了 Enter 键,并且您没有收到提示,它将执行整个随机文本,直到下一个提示。我怎样才能防止这种情况发生?如果点击Enter提示之外的任何地方会将您发送到底部的新提示,那就太好了。

emacs comint-mode

2
推荐指数
1
解决办法
275
查看次数

在计算机之间共享 .emacs。Emacs 覆盖我的 Dropbox 中硬链接的 .emacs

我想将 .emacs 保留在 Dropbox 文件夹中,以便在工作和家庭之间同步。

我将 .emacs 移至我的保管箱文件夹,然后(硬)链接它,如下所示:
ln ~/Dropbox/.emacs ~/.emacs

然后,如果我在 emacs 中打开 ~/.emacs,编辑并保存它,它会删除 .emacs 硬链接并用新的 .emacs 覆盖它,因此链接消失了。我有两个单独的副本,一个较新的 ~/.emacs 和一个过时的 ~/Dropbox/.emacs。

我可以编辑 ~/Dropbox/.emacs 文件,但有时 emacs 会自行向 .emacs 写入一些内容(例如自定义变量),然后问题会再次出现。

如何让 emacs 不覆盖该特定文件?或者有没有办法启动 emacs 并告诉它从哪里读取 .emacs?

[编辑已解决]
有人发表了关于使用软符号链接而不是硬链接的评论。这实际上对我有用并解决了问题。但后来发这条评论的人不知为何又删除了。~谢谢你是谁~

emacs config initialization

1
推荐指数
1
解决办法
1540
查看次数

Emacs:如何设置存储在变量中的主模式?

假设我有一个变量newName,它带有一些模式名称,例如"python-mode".如何创建newName指定的模式的当前缓冲区?

(progn
  (let (newName)
    (setq newName "python-mode")
    (newName) ;; doesn't work! It doesn't set current buffer's mode to be a python mode.
  )
)
Run Code Online (Sandbox Code Playgroud)

这也行不通:

(set-variable 'major-mode "python-mode")
Run Code Online (Sandbox Code Playgroud)

这个问题是基本的 - 因为它等于"是否真的可以将数据视为lisp中的代码?"

编辑

@phils

您的解决方案对我不起作用.我复制一个缓冲区 - 我希望新的缓冲区具有与旧缓冲区相同的模式.所以我将原始缓冲区的模式存储在变量中.然后尝试应用您的解决方案.它给出了错误(这是本质 - 我在这里省略了缓冲区复制的东西):

(let (sameMode)
  (setq sameMode major-mode)
  (funcall (intern sameMode))
)
Run Code Online (Sandbox Code Playgroud)

sameMode以"python-mode"的形式存储此模式(python-mode的示例).

emacs elisp

0
推荐指数
1
解决办法
562
查看次数

如何保存我的Emacs设置?

我正在使用Emacs编辑器,每次启动Emacs时,我都会丢失以前的设​​置.

例如,每次我必须键入:

  • M-x cua-mode RET
  • M-x auto-complete-mode RET

如何在Emacs中保存我的设置?

谢谢.

emacs dot-emacs

0
推荐指数
1
解决办法
3498
查看次数