emacs - 连接 abbrev 文件中的字符串

标签 emacs elisp

concatenate 在我的缩写文件中不起作用的原因是什么?我希望“env”扩展到这一小块代码,出于可读性原因,我更喜欢将字符串分成多行。然而,Emacs 似乎忽略了该缩写。

(define-abbrev-table 'python-mode-abbrev-table
  '(
    ("env" (concatenate 'string
             "#! /usr/bin/env python\n"
             "\n"
             "from __future__ import division\n"
             "from __future__ import print_function\n"
             "from __future__ import absolute_import\n"
             "from __future__ import unicode_literals\n\n")
       nil 3)
   ))

最佳答案

表达式不会在引用列表内求值。您可以使用反引号有选择地评估列表结构的各个部分:

(define-abbrev-table 'python-mode-abbrev-table
  `(
    ("env" ,(concatenate 'string
             "#! /usr/bin/env python\n"
             "\n"
             "from __future__ import division\n"
             "from __future__ import print_function\n"
             "from __future__ import absolute_import\n"
             "from __future__ import unicode_literals\n\n")
       nil 3)
))

在反引号表达式中,逗号表示应计算的部分。

关于emacs - 连接 abbrev 文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23270048/

相关文章:

emacs - 如何移动到 emacs 函数内部临时缓冲区的末尾

function - elisp 中的缓冲区局部函数

Emacs 元编程,动态定义方法

Emacs:临时缓冲区的弹出底部窗口

windows - emacs:可以设置与任务栏不同的框架标题吗? ( Windows )

emacs - 在 emacs 中转换结构化文本 block

R + 组织模式 : how to avoid naming plot files?

emacs - 在 Snow Leopard 上编译 Emacs

emacs - 防止 Emacs 询问 "modified buffers exist; exit anyway?"

emacs - 遍历Emacs Lisp哈希表