Lisp in a boxでインストールしたemacsの保存方法

このQ&Aのポイント
  • Lisp in a boxでインストールしたemacsの保存方法について解説します。
  • Lisp in a boxで保存したファイルには余分な部分も保存されてしまいます。
  • 自分で入力した部分だけ保存する方法はないのでしょうか?
回答を見る
  • ベストアンサー

Lisp in a boxでインストールしたemacsについて

Lisp in a boxでインストールしたemacsについて Lisp in a boxを起動して以下のように打ち込んでC-x、C-sでファイルを保存しました。 --------------------------------------------------------------------- *** - invalid byte #xFB in CHARSET:UTF-8 conversion, not a Unicode-16 Break 1 [2]> (defun hello-world () (format t "hello,world")) HELLO-WORLD Break 1 [2]> --------------------------------------------------------------------- で、保存したファイルを見てみるとdefunで定義したものだけじゃなく、「Break 1 [2]> 」などの余分な部分まで保存されています。(つまりemacs上に表示されている文章すべてが丸々コピーされている) これでは(load "xxxx.lisp")でロードしようとしても正常にロードできません。 私は例えば上のようにdefunで定義したものをテキストとして保存したときに、以下のように保存したいのです。 --------------------------------------------------------------------- (defun hello-world () (format t "hello,world")) --------------------------------------------------------------------- つまり自分で入力した部分だけ保存したいということですが、このようなことはできないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Lisp in a Box? Lispbox? まあ、どっちでもほぼ同じなんですが。 基本的にinferior-lispを「保存」すると、仰ったような現象になります。 それはLispに限らずそうですね。 Emacsの場合は、「画面上下分割して使用する」のが原則です。上をプログラム定義ウィンドウ、下にinferior-lispを出します。 (画面分割はC-x 2で行います。) 多分動画見た方が早いんで、下に写真付けておきますが、定義ファイル方面でC-x C-sすれば保存されますし、C-c C-kすれば定義ファイルに書かれたCLプログラムが下のinferior-lispにコンパイルされてロードされます。 Lisp in a Box(あるいは、Lispbox or Emacs + SLIME)では(load "hoge.lisp")コマンドを使う場面は殆ど無いでしょう。

nomalphard
質問者

お礼

なるほど。そうだったのですか。 動画までつけてわかりやすい回答していただいてありがとうございました。

関連するQ&A

  • format関数が使えません(Lisp)

    Emacs23でformat関数を評価してもエラーが出て使うことができません。*scratch*で評価してもloadしても同じです。 例えば (format t "ddd") で Debugger entered--Lisp error: (wrong-type-argument stringp t) format(t "ddd") eval((format t "ddd")) eval-last-sexp-1(t) eval-last-sexp(t) eval-print-last-sexp() call-interactively(eval-print-last-sexp nil nil) このようなエラーが出て実行できません。 一体どうしてwrong-type-augumentとでるのかさっぱりわかりません。どなたか知恵を貸してください。

  • emacsでcmmon lispのプログラムを作成します。

    emacsでcmmon lispのプログラムを作成します。 my-equal(A, B)= if A is an atom then if B is an atom then (eq A B) else if B is an atom then nil else if (car A)=(car B) then (cdr A)=(cdr B) else nil というのです。自分が考えたのは、 defun my-equal(x, y)= (cond ((atom x) (atom y)) (eq x, y) (atom) (t, nil) ((car x)=(car y) (cdr x)=(cdr y)) (nil)) というのでよろしいのでしょうか? また、4行目(この全文の)の意味がいまいち分かりません。

  • emacsが起動できません

    emacsを起動しようとすると. Warning: locale not supported by C library, locale unchanged Warning: Unable to load any usable ISO8859 font Warning: Missing charsets in String to FontSet conversion Warning: Unable to load any usable fontset Fatal error (11). というメッセージが出て起動することができません. emacs -nwとしてコンソールで起動させることはできます. 何が原因でどのようにすればいいのでしょうか. 使用しているのは Vine Linuxです.

  • emacsでサブディレクトリもload-path に追加する方法

    Meadow3 で使っていた拡張を Linux の emacs-22.3 で使えるものは流用 しようとして、失敗しました。 Meadow 側の site-lisp 以下を Linux のホームディレクトリに .lisp/myelisp と いうフォルダをつくりました。 そして、.emacs に、(setq load-path (cons "~/.lisp/myelisp/" load-path)) と書きました。 ~/.lisp/myelisp/ には、Meadow にあった、subdirs.el があるのですが、 サブディレクトリをロードパスとして認識できずに、emacs 起動時に、 サブディレクトリ以下にある .el ファイルを読み込めないというエラーが 発生します。 M-x describe-variable RET load-path RET でロードパスを確認すると、 load-path is a variable defined in `C source code'.Its value is ("~/.lisp/myelisp/" "/usr/share/emacs/22.3/site-lisp" "/usr/share/emacs/site-lisp" "/usr/share/emacs/site-lisp/egg" "/usr/share/emacs/site-lisp/site-gentoo.d" "/usr/share/emacs/site-lisp/tamago" "/usr/share/emacs/site-lisp/egg/egg" 以下省略 と表示されます。 "/usr/share/emacs/22.3/site-lisp" に Medow のsite-lisp 以下を置くとう まく動くのですが、ログインユーザのホームディレクトリに、2階層以上の 階層構造のあるemacsの拡張ファイルを置くにはどうしたらよいのでしょう か。

  • Lispにおける最大値関数

    Lispで括弧の入れ子の中身も含めた最大値を求める関数を自分なりに作ったのですが、条件によってはうまくいきません。 なぜだか教えていただけないでしょうか? (defun max1 (n) (cond ((atom n) n) (t (if (null (cdr n)) (max1 (car n)) (progn (let ((local_max (max1 (cdr n)))) (if (> (car n) local_max) (car n) local_max))))))) > (max1 '(1 2 6 (3 4))) 6 > (max1 '(1 2 (6) ((3 4)))) >: (6) is not a REAL

  • LISPの間違いを指摘して欲しいのですが・・・

    (setq a 1) (setq b 2) (setq c 3) (setq d 4) (setq e 5) (setq f 6) (setq g 7) (setq h 8) (setq i 9) (setq j 10) (defun wa(q r s t u v w x y z) (+ q r s t u v w x y z)) (wa a b c d e f g h i j ) 55 1から10までの合計値を求める”LISP”のプログラムを作りたいのですが上記を作ってみましたがうまくいきません。 どこが悪いのでしょうか?

  • RubyとMeadow(Emacs)について

    RubyとMeadow(Emacs)について 自分のパソコンにRubyとMeadowをインストールしたんですが、 Meadowでソースプログラムを作ってからコマンドプロンプトでそれを実行しようとすると ’ruby’は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と出てきてしまいます。 どうすれば実行できるのでしょうか? 教えていただきたいです。 ちなみにこれは夏休みの宿題で、 プリントに書かれていたとおりにやりました。 間違いがないか自分でなんども確認しましたが、 たぶん書いてあることは間違っていないと思います。 どのようにやったかというと、 Meadowでhello.rbというファイルに print("Hello, Ruby World !\n") と打ち込み、c:\progIに保存。 コマンドプロンプトを開いて progIに移動し、 ruby hello.rb →[Enter] です。

    • ベストアンサー
    • Ruby
  • BAND IN A BOXのMIDIファイルについて

    BAND IN A BOXで作った曲のギターやベース、ドラムパートを編集すると、MIDIファイルとして保存しなければいけないんですが、そのMIDIファイルが再生できません。  MIDIシンセなどは、使ってないんですが、インターフェイスが必要なんでしょうか?

  • Elispで文字列がある文字列を含むかどうか判定

    Emacs lispで、ある文字列Aと文字列BがあってBがAを含むときにt, そうでないときにnilを返す関数はどのように書けますか?

  • リストを逆順にする関数(LISP)

    「初めての人のためのLISP[増補改訂版]」のP150のリストを逆順に関数がよくわかりません。 以下がその関数です。 (defun nreverse (x) (nrev2 x nil)) (defun nrev2 (x r) (cond ((null x) r) (t (nrev2 (cdr x) x) (rplacd x r) ))) xがnilになるまで再帰を繰り返し、((null x) r) で再帰を戻りますがなぜs (rplacd x r)でリストが逆順になるんでしょうか。例えばxを(a b c)とすると x:(a b c) r:nil ↓ x:(b c) r:(a b c) ↓ x:(c) r:(b c) ↓ x:nil r:(c) ↓ rplacd (c) (b c) ↓ rplacd (b c) (a b c) ↓ rplacd (a b c) nil となるのですが、これじゃあ全然リストは逆順になりませんよね。 誰が教えてください、お願いします。 ちなみにrplacd は第一引数のcdrを第二引数に変換する関数です。

専門家に質問してみよう