Emacs函数实现不区分大小写的sort-lines排序?

29

我知道你可以在emacs中使用以下方法对行进行排序,而不区分大小写:

M-x set-variable [RETURN] sort-fold-case [RETURN] t [RETURN]
M-x sort-lines
M-x set-variable [RETURN] sort-fold-case [RETURN] nil [RETURN]

但是每次都这样做很烦人。我该如何将其转换为函数,以便不必一遍又一遍地进行相同的操作呢?

2个回答

33
很简单:
(defun sort-lines-nocase ()
  (interactive)
  (let ((sort-fold-case t))
    (call-interactively 'sort-lines)))

2
FTR,在(interactive)行后面应该有一行(defvar sort-fold-case) *(可选带默认值)*。这是因为在这种情况下,sort-fold-case是一个词法变量,所以它之前能工作有点不确定。而且没有defvar进行字节编译会导致一个投诉Unused lexical variable ‘sort-fold-case’。最新的从git构建的Emacs甚至会用custom-declare-variable: Defining as dynamic an already lexical var退出。 - Hi-Angel

9

如果您希望始终进行不区分大小写的排序,请在启动时使用以下文件:

(custom-set-variables
 '(sort-fold-case t t)
)

然后你只需调用 M-x sort-lines。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接