Emacs-Lispモードで、式が返す値を全て表示する方法

このQ&Aのポイント
  • Emacs-Lispモードで式の返り値を全て表示する方法について調べています。
  • 特に長い文字列の場合、途中で省略されてしまう問題を解決する方法について知りたいです。
  • もしご存じの方がいらっしゃれば、情報を教えていただけると助かります。
回答を見る
  • ベストアンサー

Emacs-Lispモードで、式が返す値を全て表示

こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 Emacs-Lispモードで、バッファに記述されている式を評価した時、その式が返す値が、ミニバッファに出力されます。 ところが、式が返す値が長すぎると、途中までしか表示されません。 例えば自分の環境だと、 (symbol-value 'load-path) という式を評価すると、ミニバッファには (nil "~" "~/My_Lisp_Programs" "c:/Emacs_for_Windows/emacs-23.4" "C:/Emacs_for_Windows/emacs-23.4/site-lisp" "C:/Emacs_for_Windows/emacs-23.4/../site-lisp" "C:/Emacs_for_Windows/emacs-23.4/lisp" "c:/Emacs_for_Windows/emacs-23.4/lisp/url" "c:/Emacs_for_Windows/emacs-23.4/lisp/textmodes" "c:/Emacs_for_Windows/emacs-23.4/lisp/progmodes" "c:/Emacs_for_Windows/emacs-23.4/lisp/play" "c:/Emacs_for_Windows/emacs-23.4/lisp/org" ...) という文字列が出力され、...以降が表示されません。 どうすれば、Emacs-Lispモードで、式が返す値を全て表示する事ができるのでしょうか? 何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

(setq eval-expression-print-length nil)

MetalLover
質問者

お礼

御回答ありがとうございます。 おかげさまで解決できました。

関連するQ&A

  • Emacs-Lispでの正規表現について

    例えば、以下のようなS式を評価した場合、"11" "12" "13"がヒットすると思います。 (search-forward "1[123]" nil t) しかし、私の環境では"11"や"12"ではなく"1[123]"にヒットしてしまいます。 [ ]や?等のメタキャラクターが機能していないようなのですが、どうすればメタキャラクターを有効化できるのでしょうか? ご教授宜しくお願い致します。 環境 OS:CentOS6.0 Emacs23.1.1 Lisp-interactionモードのscratchバッファに以下の様に書いて、C-jで評価しています。 (search-forward "1[123]" nil t) 12

  • Emacs Lisp: consセルと引用符?

    お世話になります。 Emacs Lispについて勉強しています 今は、リスト、consセルについて勉強しています。 以下、拙い質問になるかと思いますが、よろしくお願いします。 Lisp Interactionモードのバッファに、 '(1 2 3) というリストを書いて行末でC-jを押下すると (1 2 3) という式を返します。 しかし、 (1 2 3) という式を書いて行末でC-jを押下すると Debugger entered--Lisp error: (invalid-function 1) というエラーになります。 これは、1が関数、2と3が引数として評価されるからですね。 さて、リストではなく「consセル」を作るとします。 (1 . 2) と書いてC-jを押下すると、やはり Debugger entered--Lisp error: (invalid-function 1) というエラーになります。 '(1 . 2) であれば (1 . 2) と、正しくconsセルが出来ます。 '(1 . nil) であれば (1) というリストを返します。 これは、cdr部がnilであるconsセルはリストになるからですね。 では、3と、「1とnilからなるリスト」のconsセルを作って、結果的に(3 1)というリストにしようとします。 '(3 . '(1 . nil)) この場合は、予想に反して (3 quote (1)) となります。 '(3 . (1 . nil)) であれば、 (3 1) となります。一方、 (3 . (1 . nil)) とすると、 Debugger entered--Lisp error: (invalid-function 3) となります。 まとめると、 3と、「1とnilからなるリスト」のconsセルを作って、結果的に(3 1)というリストにしようとした場合は、 '(3 . (1 . nil)) のように外側のconsセルはクォートし、内側のconsセルはクォートしない、ということになりますね。 このクォートの振る舞いの違いはなぜでしょうか。 よろしくお願いします。

  • eval-bufferコマンドの実行結果の表示

    こんにちは。 OSは現在、64bit版のWindows7を使っています。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 Emacs-Lispモードのバッファで、eval-bufferコマンドを実行すると、 最後の式を評価した結果が、ミニバッファに表示されますが、 最後の式だけでなく、eval-bufferコマンドで評価した結果すべてを、 表示させる方法はないのでしょうか? 何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

  • Emacs Lisp: 関数に引数が渡せない?

    お世話になります。 ----------------------------------------- ; -*- lisp-interaction -*- ; このファイルはtest.elisというファイル名で、そのファイルを開いたバッファで実行 (buffer-name) ;;; ミニバッファに以下のように表示される ;;; "test.elis" (buffer-name "test.elis") ;;; ★引数を与えるとそのバッファ名を返すはず ;;; エラーになる ;;; Debugger entered--Lisp error: (wrong-type-argument bufferp "test.elis") (get-buffer "test.elis") ;;; ミニバッファに以下のように表示される ;;; #<buffer test.elis> (buffer-file-name) ;;; ミニバッファに以下のように表示される ;;; "/home/userName/test.elis" (buffer-file-name "test.elis") ;;; ★引数を与えるとそのバッファのファイル名を返すはず ;;; エラーになる ;;; Debugger entered--Lisp error: (wrong-type-argument bufferp "test.elis") ----------------------------------------- Emacs Lispの勉強として、上のようなファイルを開いて、各関数の括弧綴じ)の後ろでC-x C-eとタイプして実行し、挙動を調べています。 ★をつけたbuffer-nameおよびbuffer-file-name関数は、それぞれ引数を渡したバッファ名、および、そのバッファのファイル名が返ると思われるのですが、実際には上記のようにエラーになります。 これはどうしてでしょうか。 Emacsは23.4.1を使っています。 よろしくお願いします。

  • emacs lisp

    OS:ubuntu feisty fawn app:emacs-snapshot (emacs23) アンチエイリアスフォントのためにemacs23を使用しております。 実行したのは以下のとおり。 sudo apt-get install emacs-snapshot emacs-snapshot-el .emacs.el (autoload 'c++-mode "cc-mode" nil t) (add-hook 'c-mode-common-hook (lambda () (setq c-set-style "linux") c-basic-offset 4)) (setq auto-mode-alist (append '(("\\.cpp$" . c++-mode)auto-mode-alist)) cc-modeのバージョンは5.28です。 この設定を施したにもかかわらず、Syntax highlightが動いてくれません。(強調表示) どなたかご教授願えませんでしょうか? よろしくお願いします。

  • Emacsのシェルモードでワイルドカードが使えない

    こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 シェルモードのシェルには、cygwinのbashを使っているのですが、 bashで使えるはずのワイルドカードが、いくつか使えなくて、困っています。 bashのワイルドカードで、使えないものは、以下の通りです。 ?(pattern) 与えられたパターンが 0 回または 1 回現われるとマッチします。 *(pattern) 与えられたパターンが 0 回以上現われるとマッチします。 +(pattern) 与えられたパターンが 1 回以上現われるとマッチします。 !(pattern) 与えられたパターンいずれにも含まれないもの全てにマッチします。 これらのワイルドカードは、ktermなどの上では、きちんと使えます。 例えばkterm上で、 echo !(*.c) と打てば、.cで終わらないファイル名を持つ、ファイルの一覧が表示されます。 ところが、Emacsのシェルモードで、同じように echo !(*.c) と打つと、 emacs "bash: !: event not found" と表示されます。 同様に、 echo *(.c) と打った場合、 bash: 期待してない token `(' のあたりにシンタックスエラー と表示されます。 どうすれば、こういったワイルドカードを、シェルモードで使う事ができるのでしょうか? 何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

  • Emacsのコマンド入力で、スペースを入力する方法

    こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 eval-regionコマンドで、いくつかの式を評価した結果を、 別のファイルに出力したいと思っています。 マニュアルでは、eval-regionコマンドの説明は、以下のようになっていました。 ------------------------------------------------------------ コマンド: eval-region start end &optional stream read-function この関数は, カレントバッファのstartとendで指定した リージョン内のフォーム群を評価する. リージョンからフォームを読み取り, それらに対してevalを呼び出すことを リージョンの末尾に達するまで, あるいは, 処理されないエラーが知されるまで繰り返す. streamがnil以外ならば, リージョン内の式を評価した結果の値はstreamを使って表示する. see section 出力ストリーム. ------------------------------------------------------------ 上記の、startとendは、regionを設定した時に決まるものだと思います。 ある範囲をregionとして設定し、M-x eval-regionと入力したとに、 スペースキーを入力すると、ミニバッファには、[Sole completion] と表示され、上記のstreamを指定することができませんでした。 僕の環境では、M-xの後に、Lispコマンドを入力するときに、スペースキーを押すと、 スペースが入力されるのではなく、コマンド名の補完が行われます。 どうすれば、スペースを入力できるようになるのでしょうか? 何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

  • EMACS

    GNU EMACS for WindowsとxyzzyでLISPを使う方法を教えてください。

  • 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")) --------------------------------------------------------------------- つまり自分で入力した部分だけ保存したいということですが、このようなことはできないのでしょうか?

  • Emacsのshellモードに関する質問

    Emacsのshellモードにに関する質問 こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 shellモードについて、2つ質問させて下さい。 ・cdといった、bashの組み込みコマンドが、日本語を対処できない。 shellモードのシェルとして、bashを使った場合、cdコマンドの引数に、 日本語を含むディレクトリを指定すると、 No such file or directoryと表示されて、目的のディレクトリに移動できません。 具体的には、以下のような感じです。 ------------------------------------------------------------ Kei-Valuestar@Kei:~/Make_Tests_for_C_Files $ls 2つの関数、1つのヘッダ make_01 make_02 make_03 make_04 make_05 make_06 make_07 make_08 make_09 デフォルトシンボル、組み込み関数一覧.url トリビアなmakefile入門.url Kei-Valuestar@Kei:~/Make_Tests_for_C_Files $cd 2つの関数、1つのヘッダ/ bash: cd: 2つの関数、1つのヘッダ/: No such file or directory ------------------------------------------------------------ 日本語環境は整えてあるので、lsコマンドでは、日本語ファイルがきちんと表示されていますし、日本語ファイル名の補完も上手く行くので、bashの組み込みコマンドである、 cdだけが、日本語を適切に扱えないのだと思います。 日本語も扱える、cdコマンド(exeファイル)は、どこかで配布されてないのでしょうか? ・moreやlessといったコマンドが、きちんと動作しない。 shellモードでは、コマンドプロンプトや、cygwinのbashを使うのですが、 どちらを使った場合でも、moreやlessといった、ファイルの内容をページごとに表示する コマンドを実行した時に1ページづつ表示されず、catコマンドを実行した場合と同じように、ファイルの内容が全て表示されてしまいます。 何か対処法は無いでしょうか? 以上の件で、何か御存じの方がいらっしゃれば、是非、情報を提供して頂きたく思います。 では、よろしくお願い致します。

専門家に質問してみよう