【问题标题】:emacs: abbrev-mode can't work in python-modeemacs:缩写模式不能在 python 模式下工作
【发布时间】:2013-11-09 12:06:30
【问题描述】:

我已经通过使用这样的代码为python模式定义了一些缩写

(define-abbrev-table 'python-mode-abbrev-table
  '(
    ("i_settings" "from django.conf import settings")
    ("i_requestcontext" "from django.template import RequestContext")
    ("i_model" "from django.db import models")
    ("i_form" "from django import forms")
    ))

但它无法正常工作。例如,我输入“i_settings”然后输入一个空格,emacs 不会扩展为“从 django.conf 导入设置”。我已经在禁用所有配置的情况下尝试过,但没有帮助。

【问题讨论】:

    标签: emacs python-mode


    【解决方案1】:

    似乎下划线_ 阻止了扩展。试试同一张表没有下划线

    (define-abbrev-table 'python-mode-abbrev-table
      '(
        ("isettings" "from django.conf import settings")
        ("irequestcontext" "from django.template import RequestContext")
        ("imodel" "from django.db import models")
        ("iform" "from django import forms")
        ))
    

    它会按预期工作。

    【讨论】:

    • 似乎与下划线无关。因为如果我将 python-mode-abbrev-table 更改为 sh-mode-abbrev-table 然后在 shell 脚本源文件中,它运行良好。这很奇怪。
    • 我无法确认。将 python-mode-abbrev-table 更改为 sh-mode-abbrev-table 不会改变任何内容。即使在那里,它也不能使用下划线,也不能使用。
    【解决方案2】:

    扩展缩写--abbrev--before-point-- 的内部过程依赖于单词语法- 看不出这个BTW 的原因,Emacs 可以采用任何可打印的代替。

    因此,对于下划线字符具有单词语法的任何模式,您的定义都应该有效 - 例如使用 python-mode.el。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多