行番号のみを含むファイルを emacs からどのように書きますか。
1
2
3
4
5
理想的には、これは、印刷する行数を通知できる (どのように?) 実行するコマンドです。これは可能ですか?
行番号のみを含むファイルを emacs からどのように書きますか。
1
2
3
4
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"))))
(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 の外で行うより良い方法があります。
シェルプログラムを使用しないのはなぜseq
ですか? たとえばseq 20
、1 から 20 までの番号が付けられた 20 行のきちんとした行が印刷されます。
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))))))