emacs + latex + yasnippet:为什么在片段之后插入换行符?

Mar*_*ert 6 emacs latex

每次我在.tex文档中插入一个片段(带yasnippet)时,我会在片段后面获得一个换行符.这对于通常用于文本样式的小片段来说非常烦人.我怎么能避免这种情况?

我读了一下这个问题(http://code.google.com/p/yasnippet/issues/detail?id=115或http://yasnippet.googlecode.com/svn/trunk/doc/faq.html)但无法找到解决方案.重现如下(我使用yasnippet版本0.6.1c在Mac OS X 10.6.8上使用Aquamacs 2.3a):

  1. 定义〜/ Library/Preferences/Aquamacs Emacs/Preferences.el为:( require'yasnippet)(yas/initialize)(yas/load-directory"〜/ Library/Preferences/Aquamacs Emacs/plugins/yasnippet-0.6.1c /片段")

  2. 定义以下片段(称之为"bm.yasnippet"[bm = boldmath];星号*表示光标结束的位置 - 请注意片段后面没有换行符)

    # name: \bm{}{}
    # key: bm
    # --
    \bm{$1}*
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重新启动Aquamacs并打开.tex文件并键入bm + Tab[这应该插入代码段]

  4. 在代码段之后添加换行符.这非常不方便,因为\bm{foo}它通常用于文本样式,因此例如在"向量\bm{x}不是空向量"中.一个典型的原因是片段以换行符结束,然后插入换行符.不过,我专门获得这种行为甚至片段并没有以新行结束.

eve*_*_jr 7

我不能用普通的Emacs来重复它.事实上,我有这个确切的问题,但我的问题是我已经require-final-newline设置为t.所以Emacs在我的模板末尾添加了换行符.

我的设置稍微复杂一点,但是你的解决方案可能是设置mode-require-final-newline为nil并重新启动Emacs.

要验证这是问题,请打开模板并检查最终换行符.

  • 亲爱的event_jr,非常感谢!我不知道这些变量...我只是在我的 Preferences.el 中使用了“(setq-default mode-require-final-newline nil)”,它完全解决了问题:-) (2认同)