【问题标题】:Emacs: problems with yasnippet inserting spaces in code-snippetEmacs:yasnippet 在代码片段中插入空格的问题
【发布时间】:2015-07-23 04:47:16
【问题描述】:

我对 W7-64 上的 yasn-p 和 Emacs 23.4.1 有疑问。我写了一个博客,在使用 Wordpress 可视化编辑器时遇到了困难,我将看看是否可以简单地将所有内容编写成 HTML 并将其直接粘贴到 Wordpress 的 HTML 编辑器中。因此,使用相当令人印象深刻的 yasn-p 我创建了以下内容:

#contributor : blogger
#name : blog picture link
# --
<a href="http://verylongwebsitename.com/wp-content/uploads/2012/${1:mm}/${2:folder}/fig${3:x}_l.png"><img class="alignnone" title="fig$3" src="http://verylongwebsitename.com/wp-content/uploads/2012/$1/$2/fig$3_m.png" alt="${5:alttext}" width="${6:700}" height="${7:500}" /></a>$0

在 html 模式下输入如下所示的长而复杂的链接:

问题是在进入过程中的某个时刻 sn-p 很有趣,像这样:

如果你看你会发现 yasn-p 在每一行插入了很多空格,导致很多丑陋和断开的链接。由于单词对齐的方式,我怀疑这与 yasn-p 和选项卡设置之间的交互有关,但尽管有一些抓挠,但我无法解决问题。

任何人都可以提出可能导致这种情况的原因吗?

【问题讨论】:

  • 按照答案中的建议将# expand-env: ((yas/indent-line 'fixed)) 添加到sn-p 是否有帮助stackoverflow.com/questions/8069537/…
  • 感谢您的建议。我尝试了两种不同的配置,但似乎都没有任何效果。
  • 我有没有让 Stack Overflow 的公共智能感到困惑?!我感到一种奇怪的自豪感:-)
  • 可能只是有关这个问题的专家没有在 SO 上闲逛。因此,您可以尝试一些 yasn-p 邮件列表。不过,请务必在此处发布任何解决方案。
  • 最好在github.com/capitaomorte/yasnippet/issues 将此作为错误报告,但请务必包含您正在使用的 yasn-p 版本。我会先尝试 git repo 中的最新 HEAD。

标签: html emacs code-snippets


【解决方案1】:

对我来说,修复它的原因是在 Yasn-p 中禁用缩进。

(setq yas-indent-line (quote none))

【讨论】:

    【解决方案2】:

    为我工作,使用来自 github 的最新 yasn-p。

    # key : entry
    # contributor : blogger
    # name : blog picture link
    # --
    <a href="http://verylongwebsitename.com/wp-content/uploads/2012/${1:mm}/${2:folder}/fig${3:x}_l.png">
      <img class="alignnone"
       title="fig$3"
       src="http://verylongwebsitename.com/wp-content/uploads/2012/$1/$2/fig$3_m.png"
       alt="${5:alttext}"
       width="${6:700}"
       height="${7:500}"/>
    </a>
    $0
    

    【讨论】:

    • 感谢您,并为延迟道歉。一个原因是我身体不太好,另一个是我设法以某种方式破坏了我的 yasn-p 安装并且无法让它再次运行。我很欣赏这个建议;我以前从未尝试从 github 安装任何东西——我想这只是一个下载。我去看看。
    【解决方案3】:

    经过一番折腾,我发现问题(很可能)是 Emacs 的一种填充模式以一种奇怪的方式与 yasnippet 交互的问题。具体来说,我在 HTML 模式下将其设置为“填充”,而我显然需要的是“换行”。我的粗略解决方案是创建一个键盘宏来切换模式并将其分配给我的.emacs 文件中的快捷键,如下所示:

    (fset 'my-html-fill-setup
       [?\M-x ?a ?u ?t ?o ?- ?f ?i ?l ?l ?- ?m ?o ?d ?e return ?\M-x ?v ?i ?s ?u ?a ?l ?- ?l ?i ?n ?e ?- ?m ?o ?d ?e return])
    
    (global-set-key "\C-x\C-k1" 'my-html-fill-setup)
    

    对造成的任何混淆表示歉意。顺便说一句,在设法重新安装 yasnippet 后,我很喜欢它,发现它对各种事情都非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-03
      • 2021-04-28
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多