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