3

行番号のみを含むファイルを emacs からどのように書きますか。

1
2
3
4
5

理想的には、これは、印刷する行数を通知できる (どのように?) 実行するコマンドです。これは可能ですか?

4

3 に答える 3

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"))))

(write-line-numbers 8)elisp で実行するか、インタラクティブに実行しM-x write-line-numbers 8ます。

または、上記をスクリプトとして保存し、次のように emacs を実行することもできます。

emacs -Q --script write-line-numbers.el --eval '(write-line-numbers 8)'

しかし、Moritz が指摘するように、これを emacs の外で行うより良い方法があります。

于 2012-04-03T22:11:13.497 に答える
3

シェルプログラムを使用しないのはなぜseqですか? たとえばseq 20、1 から 20 までの番号が付けられた 20 行のきちんとした行が印刷されます。

于 2012-04-03T22:09:25.367 に答える
2

M-: (with-temp-file "foo.txt" (dotimes (i 15) (insert (format "%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))))))
于 2012-04-04T09:03:51.103 に答える