yasnippet 补全乱码

在使用插件 Yasnippet 的时候,补全的时候出现的代码片段经常出现一些乱码的情况,比如,下面自动补全的代码片段(sh-mode): file_full_name=YASESCAPE96PROTECTGUARDbasename YASESCAPE36PROTECTGUARD{img}YASESCAPE96PROTECTGUARD dir_name=YASESCAPE96PROTECTGUARDdirname imgYASESCAPE96PROTECTGUARD file_name=YASESCAPE36PROTECTGUARD{file_full_name%.*} 出现上面很多乱码的情况,大家碰到这种情况吗?

The duplicate of Emacs yasnippet 补全出现乱码 ?

Please elaborate

抱歉,这段又经常使用Yasnippet 这个插件,又蹦出来这个问题。

(defun yas--escape-string (escaped)
  (concat "YASESCAPE" (format "%d" escaped) "PROTECTGUARD"))

(defun yas--protect-escapes (&optional text escaped)
  "Protect all escaped characters with their numeric ASCII value.

With optional string TEXT do it in string instead of buffer."
  (let ((changed-text text)
        (text-provided-p text))
    (mapc #'(lambda (escaped)
              (setq changed-text
                    (yas--replace-all (concat "\\" (char-to-string escaped))
                                     (yas--escape-string escaped)
                                     (when text-provided-p changed-text))))
          (or escaped yas--escaped-characters))
    changed-text))

应该跟你的 snippet 相关,重点关注 96 36 两个字符,即 $ 和 ` (后面这个不知道用 markdown 如何转移了 :frowning: