如何在一系列行上运行emacs命令?

如何在一系列行上运行emacs命令?,emacs,Emacs,我想对整个文件运行排序行命令 C-xhM-xsort-linesEnter 我需要在运行“排序行”命令之前标记区域 如何跳过C-xh。我可以在vim中提供一个像%这样的参数来对行进行排序吗?我不是专家,但我不相信排序行可以接受行号作为参数。也就是说,编写一个函数来实现这一点应该不难。这是我刚刚拼凑的一个简单例子: (defun my-sort-lines (start end) (interactive "nStart: \nnEnd: ") (save-excursion (s

我想对整个文件运行排序行命令

C-xhM-xsort-linesEnter

我需要在运行“排序行”命令之前标记区域


如何跳过C-xh。我可以在vim中提供一个像%这样的参数来对行进行排序吗?

我不是专家,但我不相信排序行可以接受行号作为参数。也就是说,编写一个函数来实现这一点应该不难。这是我刚刚拼凑的一个简单例子:

(defun my-sort-lines (start end)
  (interactive "nStart: \nnEnd: ")
  (save-excursion
    (save-restriction
      (goto-line start)
      (mark)
      (goto-line (1+ end))
      (narrow-to-region (mark) (point))
      (sort-lines nil (point-min) (point-max))
      (widen))))

从我所做的有限的测试来看,它似乎是有效的。考虑到我使用emacs lisp的经验很少,我确信还有一些改进需要改进。

我不是专家,但我不相信排序行可以接受行号作为参数。也就是说,编写一个函数来实现这一点应该不难。这是我刚刚拼凑的一个简单例子:

(defun my-sort-lines (start end)
  (interactive "nStart: \nnEnd: ")
  (save-excursion
    (save-restriction
      (goto-line start)
      (mark)
      (goto-line (1+ end))
      (narrow-to-region (mark) (point))
      (sort-lines nil (point-min) (point-max))
      (widen))))

从我所做的有限的测试来看,它似乎是有效的。考虑到我使用emacs lisp的经验很少,我确信还有一些改进需要改进。

以下是最简单的解决方案-如果没有区域处于活动状态,请将缓冲区的范围传递给排序行:


下面是最简单的解决方案-如果没有区域处于活动状态,请将缓冲区的范围传递给排序行: