我编写了一个小函数来使用逗号作为项目分隔符来反转标记区域中的项目。功能代码为:
(defun reverse-list (beg end)
"Reverses a list in-place, where comma ',' is the list item separator."
(interactive "r")
(if (region-active-p)
(let ((region-list (reverse (split-string (region-as-string) ","))))
(kill-region beg end)
(loop for s in region-list do (progn
(insert (chomp s))
(insert ", ")))
(delete-char -2))
(message "Error: No region selected!")))
其中chomp
从字符串中去除前导/尾随空格region-as-string
并将区域生成为字符串。
该功能非常有用,但是能够即时选择分隔符会很棒。我正在寻找的行为是:
- 如果在没有通用参数的情况下调用,则使用逗号作为项目分隔符
- 如果使用通用参数 (
C-u
) 调用,则要求用户输入一个(可能是多字符)分隔符字符串
我试图实现这一目标,但没有成功。如果您能提供帮助,那就太好了!
提前致谢,
elemakil