# -*- mode: snippet -*-
# name: parameter-aligment
# key: pa
# type: command
# --
(let ((yas-good-grace nil)
(parm1 (read-string "Parameter 1: "))
(parm2 (read-string "Parameter 2: "))
(parm3 (read-string "Parameter 3: "))
(parm4 (read-string "Parameter 4: ")))
(yas-expand-snippet
(concat
"// *****************************************************************************\n"
"// " (format "%-50s, %s\n" parm1 parm2)
"// " (format "%-50s, %s\n" parm3 parm4)
"// *****************************************************************************\n"
)))
输入 pa 按 TAB 补全,根据提示依次输入长度不一的参数名,例如:
a
b
ccccccccccccc
ddddddddddddddddddd
得到:
// *****************************************************************************
// a , b
// ccccccccccccc , ddddddddddddddddddd
// *****************************************************************************
这种方式的缺点是:输入完最后一个参数,才能看到结果,没有那种编辑实时调整宽度的快感。
2 楼 提到的 package,在 yasnippet 展开的时候使用,是否会冲突?
其实也可以等 yasnippet 展开填写完之后,统一调整。
还可以在 yasnippet 展开的时候启用 evil 的 replace 模式?