你如何让emacs将行号写入文件?

use*_*798 3 emacs

您将如何从仅包含行号的emacs编写文件,例如:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

理想情况下,这将是一个您将执行的命令(如何?),可以告诉您要打印多少行.这可能吗?

ata*_*lor 6

这是一个快速的elisp函数:

(defun write-line-numbers (n)
  (interactive "nNumber of lines: ")
  (save-excursion
    (with-output-to-temp-buffer "*lines*"
      (dotimes (line n)
        (princ (format "%d\n" (1+ line))))
      (set-buffer "*lines*")
      (write-file "lines.txt"))))
Run Code Online (Sandbox Code Playgroud)

您可以使用(write-line-numbers 8)elisp或M-x write-line-numbers 8交互式运行它.

或者您可以将上述内容保存为脚本并运行emacs,如下所示:

emacs -Q --script write-line-numbers.el --eval '(write-line-numbers 8)'
Run Code Online (Sandbox Code Playgroud)

但正如莫里茨指出的那样,有更好的方法可以在emacs之外做到这一点.