2011-08-30 29 views
5

の内容から、無名のバッファを作成します。elispの私は<a href="http://www.emacswiki.org/emacs/ElispCookbook#toc42" rel="noreferrer">Elisp Cookbook</a>からいくつかのコードをしようとしていた、と私は最初にこのコードことを取り払わファイル

(defun process-file (file) 
    "Read the contents of a file into a temp buffer and then do 
something there." 
    (when (file-readable-p file) 
    (with-temp-buffer 
     (insert-file-contents file) 
     (goto-char (point-min)) 
     (while (not (eobp)) 
     ;; do something here with buffer content 
     (forward-line))))) 

を持つ、私のemacsのウィンドウ上に新しい(名前/保存されていない)バッファを作成します。そのファイルの内容(フォアグラウンドで開くこともできます)。しかし、これは起こりません。これに向かって私を導くことができますか?

編集:私は少し実験し、これに得た:

(defun myTest (file) 
    (interactive "f") 
    ; check if file is readable 
    (when (file-readable-p file) 
     ; create a new "untitled" buffer 
     (let ((myBuf (get-buffer-create "untitled"))) 
      ; make it the current displayed buffer 
      (switch-to-buffer myBuf) 
      (insert "Hello"))))   

が、これはそれを行う方法ですか?

これは「タイトルなし」という名前のバッファーなので、セッション内でこれらのうちの1つしか持つことができません。乱数に頼らずに、複数のものを持つために使うことができるものはありますか?

答えて

3

一意のバッファ名を生成するには、generate-new-buffer-nameを使用します。ドキュメントは次のとおりです。

(generate-new-buffer-name NAME &optional IGNORE) 
は名前に基づいていない既存のバッファの名前である文字列を返します

。 NAMEという名前のライブバッファが存在しない場合は、NAMEを返します。そうでない場合は 名前を変更して名前を変更し、未使用の名前が見つかるまでNUMBERをインクリメント( から2)してから、その名前を返します。オプション 2番目の引数IGNOREは、その名前のバッファが存在していても使用可能な名前(使用するシーケンス内で の場合)を指定します。

関連する問題

 関連する問題