求教:通过循环自动成生text properties

我想通过循环生成一个list,如下:

(#(“aaa” 0 1 (:initials “aaa”)) #(“bbb” 0 1 (:initials “bbb”)) )

函数是:

(defun abc ()

(interactive)

(let* ((names '(“aaa” “bbb” “ccc”))

	 (n-list '())
	 )

(cl-loop for i in names
		 collect
		 (progn
		   (setq n-list (append n-list (list
										#(i 0 1
										   (:initials
											i
											))
										)))
		   )
		 )

(message "%s" n-list)
)

)

报错,说是没有#这个符号。这个应该怎么处理?

文本属性你得用propertize 对字符串进行属性化

用markdown格式的文本好好格式化一下代码吧,现在这样没法看。

(let* ((lst '("aaa" "bbb" "ccc"))
       (n-list (cl-loop for item in lst
			collect (propertize item 'initials item))))
  (message "%s" n-list))

感谢这么细致的回复

问题已经解决了