您将如何从仅包含行号的emacs编写文件,例如:
1
2
3
4
5
理想情况下,这将是一个你可以执行的命令(如何?),可以告诉你要打印多少行。这可能吗?
答案 0 :(得分:5)
这是一个快速的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"))))
您可以在elisp中使用(write-line-numbers 8)
或以交互方式使用 M-x写行数字8 运行它。
或者您可以将上述内容保存为脚本并运行emacs,如下所示:
emacs -Q --script write-line-numbers.el --eval '(write-line-numbers 8)'
但正如莫里茨指出的那样,有更好的方法可以在emacs之外做到这一点。
答案 1 :(得分:3)
为什么不使用shell程序seq
呢?例如。 seq 20
将打印20条编号为1到20的整齐线条。
答案 2 :(得分:1)
米 - : (with-temp-file“foo.txt” (dotimes(i 15)(插入(格式“%2d \ n”(1 + i))))))
如果你经常这样做,那就把它变成一个功能:
(defun write-sequence (length output-file)
(interactive "nLength of sequence: \nFOutput file: ")
(with-temp-file output-file
(dotimes (i length) (insert (format "%d\n" (1+ i))))))