Emacs

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


3
直言不讳
这很简单。我的光标在一个单词上,我想得到这个单词,以便我可以做一些事情。我看到了几种不同的方法来执行此操作,但希望避免重新发明并使用标准方法。
10 words 

1
使用yasnippet和polymode在R Markdown中插入代码块
我正在尝试编写一个Yasnippet,以将代码块插入R Markdown文件中。我使用多模式在单个文件中具有多个主要模式(markdown,ESS [S])。这是我的片段: # -*- mode: snippet -*- # name: chunk # key: chunk # -- \`\`\`{r $1} $0 \`\`\` 当我尝试以降价模式将代码段插入.Rmd文件时,出现以下错误: Error in post-command-hook (yas--post-command-handler): (error "Marker points into wrong buffer" #<marker at 7 in test.Rmd>) 该代码段确实出现,并且我的光标位于正确的位置(紧接在第二个花括号之前): ```{r } ``` 当我点击选项卡时,我得到以下信息: yas-next-field: Wrong type argument: overlayp, nil 我猜想我正在与polymode进行交互:插入代码段时,我处于markdown模式,但是polymode将代码块的内容转换为ESS [S]模式。看起来最终会有一条命令在多模式下插入新的块,但是与此同时有什么办法可以使此代码段正常工作?

1
邪恶模式和正则表达式
在Vim中,如果要搜索X为数字的所有变量名LX,则只需键入即可/L\d。但是,这似乎不适用于evil。 Evil模式下是否有用于正则表达式的另一种语法,还是我不得不依靠一些Emacs功能来搜索和使用正则表达式进行替换? 我正在使用spacemacs,对Emacs中的大多数事情我一无所知,很高兴整日处于Evil模式:)。


2
是否可以将生成的文档字符串附加到lambda?
Emacs文档说,当文档字符串放在其中lambda或defun“直接存储在函数对象中”时。但是,我们可以像这样更改命名函数的文档: (put 'my-function-name 'function-documentation "Blah.") 但是,相同的技巧不适用于lambda。有没有一种方法可以向lambda添加文档?还是以某种方式动态生成文档字符串文字? 为了澄清,设想以下情况: (let ((foo 1) (bar 2)) (lambda () (+ foo bar))) 我希望Lambda有一个文档字符串,其中提到fooand的值bar。

2
使用使用包解除绑定键
我正在尝试取消绑定 org-cycle-agenda-files,默认情况下设置为 C-'和C-,。 我选择这样做的武器是use-package package。 在github.com/use-package/bind-key.el 页面上,我发现了以下几行: ;; To unbind a key within a keymap (for example, to stop your favorite major ;; mode from changing a binding that you don't want to override everywhere), ;; use `unbind-key': ;; ;; (unbind-key "c-c x" some-other-mode-map) 这导致我尝试以下变体失败: (unbind-key "C-'" ) (unbind-key "C-," …

1
可可Emacs 24.5字体问题(Inconsolata-dz)
我正在尝试将[Inconsolata-dz] [1]设置为Emacs的默认字体。常规Inconsolata可以正常工作,但是dz版本无法正常工作。我使用的大多数功能都会抛出此错误(在线上有所有有关如何设置Emacs字体的说明): set-face-attribute: Invalid font name: "-*-Inconsolata-dz-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1" 我终于在我的电脑上完成了这项工作init.el: (setq initial-frame-alist '((font . "Inconsolata-dz-13"))) (setq default-frame-alist '((font . "Inconsolata-dz-13"))) 我在中也有这个init.el,它是由生成的customize-faces,但是它似乎将字体更改为Helvetica(除非被上面的代码覆盖): (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such …
10 init-file  osx  faces  fonts 

5
如何在Windows PC上设置hunspell?
我的hunspell词典在C:\hunspell\。它包含了.dic与.aff三种语言文件:en_GB,en_US,和nb_NO。我在网上找到有关如何使Emacs中的hunspell工作的描述,使我感到困惑。 为了在Emacs中使用这三个普通字典,我在init文件中需要的最低代码是多少? 我已经尝试过一个网站建议的以下代码: (add-to-list 'exec-path "C:/hunspell/bin/") (setq ispell-program-name (locate-file "hunspell" exec-path exec-suffixes 'file-executable-p)) 但是当要通过更改字典时M-x ispell-change-dictionary,我收到以下消息: ispell-phaf:无匹配项,为nil。

2
构建最小的Emacs 25以进行单元测试
我想为Emacs Lisp软件包的单元测试构建一个非常小的Emacs干线变体。该构建不需要GUI,不需要图像等。本质上,它应该只是具有核心Emacs Lisp库的最小Emacs Lisp解释器,并且构建速度应该很快,最好在五分钟之内。 目前,我要传递--with-x-toolkit=no --without-x --without-all给./configure。完成后,它告诉我所有Emacs功能都已禁用,但是不幸的是构建仍然需要近十分钟。 我了解可能无法更快地构建Emacs,但是令我感到奇怪的是,使用相同的标志, Emacs 24.5可以在大约两分钟内构建。 这种巨大差异的原因是什么,我能否使Emacs干线的构建速度与Emacs 24.5一样快? 并且,在相关问题中,如何使Emacs安静地构建?目前,我的单元测试输出中几乎有80%是Emacs构建的。理想情况下,我想完全不make install打印任何输出。

1
“回顾”效果
我有一些使用的代码(looking-back … (line-beginning-position))。Doc字符串looking-back说明,由于速度慢,最好避免使用此功能。我很好奇以下方法会更快吗? (save-excursion (goto-char (line-beginning-position)) (looking-at regexp stuff))

3
hl-line-mode隐藏背景,如何避免这种情况?
带有: (when window-system (set-face-background 'hl-line "light yellow") (global-hl-line-mode 1)) 当前行以黄色背景突出显示,但是如果文本具有背景属性,它也会被覆盖(例如diff-mode,rainbow-mode)。 是否可以仅为没有适当属性的零件设置背景? 我开始进行实验的UPDATE,似乎点画与背景没有冲突: (set-face-stipple 'hl-line '(4 4 "\x01\x00\x00\x00")) (set-face-attribute 'hl-line nil :inherit nil) 但是不幸的是,点画会损坏文本外观。

3
如何从elisp回答minibuffer提示?
我偶尔会发现自己在自己编写的函数内部使用交互函数。如果某个函数要求提供某些信息(例如“输出文件:〜/”),是否有一种通用的省略号方式可将文本添加到小型缓冲区中,然后按Enter键,以便用户不必这样做? 例如,假设我想org-latex-export-to-pdf在函数内部运行,但是我不想用户必须指定文件名。运行(org-latex-export-to-pdf)会将点移动到迷你缓冲区,但是(insert "filename.tex")在下一行放置类似内容似乎无效。
10 elisp 

2
解析格式化的时间字符串(format-time-string的倒数)
该format-time-string函数接受一个时间参数如'(21761 64499 350937 0)和一个格式字符串,"%y-%m-%d %a %H:%M"并返回"15-03-12 Thu 16:49"。 什么是逆函数,需要"15-03-12 Thu 16:49"and "%y-%m-%d %a %H:%M"并返回'(21761 64499 350937 0)? 我正在尝试从网站中解析时间,以便将其转换为组织模式时间戳记,但是在emacs文档中找不到正确的功能时遇到了麻烦。 编辑我正在从评论到erikstoke的答案中推广这一点。parse-time-string并且org-parse-time-string是不够的,因为尽管它们解析许多标准时间字符串,但它们不允许使用指定的格式。两种功能都不是很全面。特别是,它们缺乏ISO8601支持。

2
返回父目录绝对路径的函数
(parent-dir "/home/sk/parent/ab.el") 给 "/home/sk/parent" 然后, (parent-dir "/home/sk/parent") 给 "/home/sk" 任何elisp函数parent-dir都可以为文件路径和目录路径提供基本路径吗?

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.