我知道你可以在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] 但是每次都这样做很烦人。我该如何将其转换为函数,以便不必一遍又一遍地进行相同的操作呢?
很简单:(defun sort-lines-nocase () (interactive) (let ((sort-fold-case t)) (call-interactively 'sort-lines)))
如果您希望始终进行不区分大小写的排序,请在启动时使用以下文件: (custom-set-variables '(sort-fold-case t t) ) 然后你只需调用 M-x sort-lines。
(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