在缩写文件中连接字符串

时间:2014-04-24 13:15:30

标签: 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)
   ))

1 个答案:

答案 0 :(得分: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)
))

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