Emacs: проблемы с вставкой пробелов в коде yasnippet - PullRequest
3 голосов
/ 24 февраля 2012

У меня проблема с yasnippet и Emacs 23.4.1 на W7-64. Я пишу блог и, столкнувшись с трудностями с визуальным редактором Wordpress, собираюсь выяснить, не проще ли просто составить все в HTML и вставить его непосредственно в редактор Wordpress. Соответственно, используя довольно впечатляющий ясниппет, я создал следующее:

#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-режиме:

Проблема в том, что в какой-то момент в процессе входа в фрагмент, это выглядит забавно, вот так:

misbehaving yasnippet

Если вы посмотрите, вы увидите, что yasnippet вставил много пробелов в каждой строке, вызывая много уродства и неработающую ссылку. Из-за того, что слова в некотором роде выровнены, я подозреваю, что это как-то связано с взаимодействием между настройками yasnippet и tab, но, несмотря на некоторые проблемы, я не могу решить проблему.

Кто-нибудь может подсказать, что может быть причиной этого?

Ответы [ 3 ]

3 голосов
/ 22 июля 2015

Для меня, что исправило отключение отступов в Yasnippet.

(setq yas-indent-line (quote none))
0 голосов
/ 15 августа 2012

После долгих раздумий я обнаружил, что проблема была (скорее всего) в том, что один из режимов заполнения 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, я люблю его и считаю его очень полезным для всех видов вещей.

0 голосов
/ 27 марта 2012

Работает у меня, используя последнюю версию yasnippet от github.

# 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
...