トップページunix
1001コメント285KB

Emacs part 22

■ このスレッドは過去ログ倉庫に格納されています
0001Zeno ◆5nZQbNmQPs 2007/06/03(日) 08:46:53
Emacs は我々が毎日振れ合い愛憎する最強の汎用環境/エディタである.
このスレッドは皆が Emacs に関しての情報を共有し合う場である.
まあ気楽にやっていこうではないか

EmacsWiki http://www.emacswiki.org/
Emacs 電子書棚 http://www.bookshelf.jp/
GNU Emacs - GNU Project - Free Software Foundation (FSF) http://www.gnu.org/software/emacs/
emacs - SCM: CVS Repositories [Savannah] http://savannah.gnu.org/cvs/?group=emacs
NTEmacs スレッド http://pc11.2ch.net/test/read.cgi/software/1097170623/

前スレ http://pc11.2ch.net/test/read.cgi/unix/1168261179/

最新の stable リリースは「22.1」であり、本体は
* http://ftp.gnu.org/pub/gnu/emacs/emacs-22.1.tar.gz
* http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-22.1-bin-i386.zip (Windows)
からダウンロード可能である.

ちなみに吾の名は Zeno -- Emacs を使用した情報操作の魔術師である.
0050名無しさん@お腹いっぱい。2007/06/08(金) 21:30:47
igrep を 22 で使うと *igrep* バッファの2行目の
「Igrep started at Fri Jun 08 21:26:08」
この部分が next-error のジャンプ対象となってしまいます。
色々やったのですが回避策がわかりませんでした。
どなたか回避できている方はいませんでしょうか?
0051名無しさん@お腹いっぱい。2007/06/08(金) 22:44:07
>>50
関数 igrep の compilation-start の2番目の引数を 'grep-mode にすると動くっぽい。
モード名変わるけど。
0052名無しさん@お腹いっぱい。2007/06/08(金) 23:41:53
>>49 フォントがめんどくさくない?
0053名無しさん@お腹いっぱい。2007/06/09(土) 17:23:21
pcl-cvsで、特定の日時とのdiffとか、その日付へのupdateとかって
できないのかな。
0054名無しさん@お腹いっぱい。2007/06/09(土) 21:49:50
>>51
それは、見当がついたのですがソースを検索しても
同様の文字列が見つからなかったので、修正できなかったのです。
0055名無しさん@お腹いっぱい。2007/06/09(土) 22:34:11
>>54
んぐ、版が違う。
http://www.emacswiki.org/cgi-bin/emacs-ja/igrep.el
0056名無しさん@お腹いっぱい。2007/06/10(日) 15:52:04
(hogehoge 'cl)
を評価すると cl をロードしたファイルが判る、みたいな関数があったと思う
んだけど、hogehoge の名前が思い出せん。apropos にも引っかからん。
なんて名前だっけ。
0057名無しさん@お腹いっぱい。2007/06/10(日) 15:59:05
(find-library-name "cl")か?
0058名無しさん@お腹いっぱい。2007/06/10(日) 16:04:19
Debugger entered--Lisp error: (void-function find-library-name)
0059名無しさん@お腹いっぱい。2007/06/10(日) 16:07:46
locate-library
0060名無しさん@お腹いっぱい。2007/06/10(日) 16:21:29
>>59
(゚Д゚)ハァ?
0061名無しさん@お腹いっぱい。2007/06/10(日) 16:25:00
しばしまて。
0062名無しさん@お腹いっぱい。2007/06/10(日) 17:03:21
これでどうだっ!
(require 'loadhist)
(file-dependents (feature-file 'cl))
0063名無しさん@お腹いっぱい。2007/06/10(日) 17:35:17
39
0064名無しさん@お腹いっぱい。2007/06/10(日) 19:09:35
40
0065名無しさん@お腹いっぱい。2007/06/10(日) 20:19:39
>>55

一応それ使っています。2年ぐらい修正されていないのですがその間に
>>50の現象が出ているのです。
どなたも22.1では、使っていないんでしょうか・・・
0066名無しさん@お腹いっぱい。2007/06/10(日) 20:57:42
>>62
あ、そうそう、loadhist.el だった。
でも、前は一命令でやってたような気がするんだけど、記憶違いかなあ。
loadhist 見てもそんなのなさそうだし。

とりあえず目的は達せられたわ。
多謝ロット。
0067名無しさん@お腹いっぱい。2007/06/11(月) 03:15:30
pcl-cvs でのヒストリを独立させたかったので調べたみた。

(defvar cvs-mode-hist nil)
(when (boundp 'cvs-diff-flags)
(makunbound 'cvs-diff-flags))
(cvs-flags-define cvs-diff-flags (cvs-defaults '("-u" "-N") '("-c" "-N") '("-u" "-b")) nil nil 'cvs-mode-hist)

こんな感じでいいのかな。
0068名無しさん@お腹いっぱい。2007/06/11(月) 11:38:33
質問なんですが
「正の整数値を読み込み、逆順に出力するプログラムを作れ」
−例−
数を入力せよ:1895
5981

というので、whileを使うのはなんとなくわかるんですが
命令群がわからないので教えていただきたいのですが
0069名無しさん@お腹いっぱい。2007/06/11(月) 11:59:36
elispで?
0070名無しさん@お腹いっぱい。2007/06/11(月) 12:08:15
っelisp.info

ほんとに関数がわからないだけなら、これこれを受け取ってこれこれを
返す(・出力するetc)関数はありませんか、と具体的にきくはずだけど。
0071名無しさん@お腹いっぱい。2007/06/11(月) 13:13:47
どんなコード考えてるか知らないけど、while使う必要なくね?
0072まさひろ2007/06/11(月) 14:26:18
>>68
つか整数リストを reverse して pop していけばいいだけじゃね
0073名無しさん@お腹いっぱい。2007/06/11(月) 14:46:46
>>72
空気読め阿呆
0074名無しさん@お腹いっぱい。2007/06/11(月) 16:57:17
>>67
aset使えばよかったorz
0075名無しさん@お腹いっぱい。2007/06/11(月) 19:45:45
>>68
宿題は自分で解きましょうね^^
0076名無しさん@お腹いっぱい。2007/06/11(月) 19:54:04
ごめん。空気読めずに>>68見た瞬間にこんなの作ってた。
もっと効率の良さそうな方法があれば教えてプリーズ。

----BEGIN BASE64----(my-reverse-number.el)
KGRlZnVuIG15LXJldmVyc2UtbnVtYmVyIChudW0pDQogIChpbnRlcmFjdGl2ZSAi
bpCUgvCT/JfNgrmC5jogIikNCiAgKG1lc3NhZ2UgIiVkIiAoc3RyaW5nLXRvLW51
bWJlcg0KICAgICAgICAgICAgICAgICAobWFwY29uY2F0DQogICAgICAgICAgICAg
ICAgICAnaWRlbnRpdHkNCiAgICAgICAgICAgICAgICAgIChucmV2ZXJzZSAoc3Bs
aXQtc3RyaW5nIChudW1iZXItdG8tc3RyaW5nIG51bSkgIiIpKQ0KICAgICAgICAg
ICAgICAgICAgIiIpKSkpDQo=
----END BASE64----
0077762007/06/11(月) 20:08:19
よく考えたら01234みたいに数値が0から始まってるのや、
Emacs で扱える数値より大きい数値だとちゃんと動かないな。
0078名無しさん@お腹いっぱい。2007/06/11(月) 20:12:51
どうせほんとの問題はシェルスクリプトかなんかなんでしょ?

あと、elispの添削してほしいならこっち。
【叩かれて】Emacs Lisp道場【強くなれ】
http://pc11.2ch.net/test/read.cgi/unix/1063880951/
0079名無しさん@お腹いっぱい。2007/06/11(月) 20:58:10
>>76
mapconcat -> concat
split-string -> string-to-list でいいんでない?

正の整数っていってるし>>77は無視してもいいんじゃ?
0080名無しさん@お腹いっぱい。2007/06/11(月) 22:58:01
http://ja.wikipedia.org/wiki/Common_Lisp_Object_System

ここ読んでると、「Common Lisp Object Systemは、… 他の類似の言語(EuLisp や Emacs Lisp)にも
導入されている」とありますが、標準elispでCLOSっぽい実装機能ってありますでしょうか?cl探しても
見つからなかったんですが・・・
0081名無しさん@お腹いっぱい。2007/06/11(月) 23:37:29
>>80
emacs-w3m が luna と言うものを使ってるはず。
0082名無しさん@お腹いっぱい。2007/06/12(火) 04:46:46
eieio
0083762007/06/12(火) 11:30:34
>>79
数のリストを concat すると文字列になる機能を知らなかった。
教えてくれてありがとう!
0084名無しさん@お腹いっぱい。2007/06/12(火) 15:48:59
質問です。
emacsで日本語入力する際、句読点を半角英数「,」「.」で表示できるように
するには、どのファイルをどのように変更すればよいのですか?
よろしくお願いします。
0085名無しさん@お腹いっぱい。2007/06/12(火) 15:51:24
いみわかんね
0086名無しさん@お腹いっぱい。2007/06/12(火) 15:53:44
「emacsで」だけじゃ
日本語入力に何を使ってるのかわからん。
0087名無しさん@お腹いっぱい。2007/06/12(火) 16:17:59
入力済みのファイルを (replace-string "、" ",") のように変更すればよい。

0088名無しさん@お腹いっぱい。2007/06/12(火) 16:24:55
text-adjust もあるしな
0089名無しさん@お腹いっぱい。2007/06/12(火) 17:14:23
表示できればいいんだろ?
(let ((tab (make-display-table)))
(aset tab ?、 [?,])
(aset tab ?。 [?.])
(setq standard-display-table tab))
0090名無しさん@お腹いっぱい。2007/06/12(火) 21:35:02
emacs22にしてから、migemoで
[(wrong-type-argument integer-or-marker-p t)]
こんなのがちょくちょくでて邪魔くさい
0091名無しさん@お腹いっぱい。2007/06/12(火) 23:55:35
>>66
(featurep 'cl)
じゃない?
0092名無しさん@お腹いっぱい。2007/06/13(水) 00:00:48
ちなみにどのくらいの Elisp を require しているかは
(length features) で分かるよ。

; ちなみに 375 だった。
; navi2ch と skk と wl を使うと、それくらいになるのかな。
0093名無しさん@お腹いっぱい。2007/06/13(水) 00:44:41
>>90
同じく。でも最近日本語検索することが無いので放置してある。

>>92
> (length features) ==> 501
これはひどい…
0094名無しさん@お腹いっぱい。2007/06/13(水) 00:57:12
>>90,93
まじか?
Emacs22に移行して1年以上だけど、そんなエラー見た記憶ないなぁ。
isearch.el の変更で潜在していたバグが発見された?ってことがあったけど、
http://www.namazu.org/pipermail/migemo/2006-September/000023.html
それ以外、まったく問題なく使えてるけどねぇ。
0095名無しさん@お腹いっぱい。2007/06/13(水) 01:23:18
GNU Emacs 21.4.1
を使っているのですが、navi2chを使っていると
ホストに接続できないという、メッセージが頻繁に出てしまいます。
起動したときに、menu.htmlを取って来れないときもありますし、
スレッド一覧を表示して再リロードしようとしたときに、いわれることもあります。
基本的に最初の数回のリクエストしか、接続してくれません。
ですが、-nwを付けて起動すると上記のようなことが起こったことは1度もありません。

-nwを付けていないとの、つけているのでは何か環境が変わるのでしょうか?
0096名無しさん@お腹いっぱい。2007/06/13(水) 01:27:45
carbon emacsを使用し始めたのですが、
文字コードの設定のせいで保存したファイルがmacのテキストエディタ等で開けません。
文字コードの設定方法はわかるのですがどのコードで保存すればいいかわかりません。
誰か教えていただけると助かります。
0097名無しさん@お腹いっぱい。2007/06/13(水) 01:30:34
mac

ってコーディングシステムがあるけど、それじゃだめなんですかい?
0098名無しさん@お腹いっぱい。2007/06/13(水) 01:35:41
>>96
テキストエディタで書いたファイルの文字コード見たら?
0099名無しさん@お腹いっぱい。2007/06/13(水) 02:09:44
>>90 漏れも。Carbon Emacs 22.0.97 だけど。
実害はナインだよな。それになぜか今は発症しないし。

0100名無しさん@お腹いっぱい。2007/06/13(水) 02:50:17
>>90
おれもたまに出る。いろんなところで出る。
が、面倒なんで原因を追及してない(ダメじゃん)
0101名無しさん@お腹いっぱい。2007/06/13(水) 02:50:59
>>94
別にエラーじゃないんだが。
0102名無しさん@お腹いっぱい。2007/06/13(水) 04:01:32
>>94
このbugfix知らなかった。入れてみたら調子よくなった(ように感じるw
0103名無しさん@お腹いっぱい。2007/06/13(水) 07:28:09
>>96
おれもutf-8で保存したファイルが開けなくて困ってたんだけど、
テキストエディットの環境設定で、ファイルを開くときのエンコードを自動から
utf-8に指定してやったら開けるようになった。
SJISなら自動でもいいみたいだが。
0104名無しさん@お腹いっぱい。2007/06/13(水) 08:26:56
>>91
「誰がそいつをロードしたか」を知りたい>>56って話なので。
0105名無しさん@お腹いっぱい。2007/06/13(水) 10:56:55
96です。
sjisで日本語が表示できることと、テキストエディットの設定でも表示できるようになったのですが
emacsで作成したファイルをWindowsで見ると、改行コードが異なるため一行にまとまって表示されてしまいます。
macとwindowsどちらでも改行が使用できるようにはできないのでしょうか?
質問ばかりで申し訳ありませんがわかる人いましたら宜しくお願い致します。
0106名無しさん@お腹いっぱい。2007/06/13(水) 11:59:09
sjis-dosで保存すれば問題ないはず。
0107名無しさん@お腹いっぱい。2007/06/13(水) 12:21:22
Win でも Meadow とか使えばいいんじゃないか?
0108名無しさん@お腹いっぱい。2007/06/13(水) 13:11:30
sjis-dosで問題なく表示されました。
教えてくださった皆さんありがとうございました。
0109名無しさん@お腹いっぱい。2007/06/14(木) 08:04:25
新Emacsの強力な置換機能を使いこなす
http://japan.zdnet.com/oss/story/0,3800075264,20350805,00.htm
0110名無しさん@お腹いっぱい。2007/06/14(木) 08:58:57
>>24 で既出
0111952007/06/15(金) 15:45:04
すみません

分かる方いませんでしょうか?
0112名無しさん@お腹いっぱい。2007/06/15(金) 18:14:35
>>111
navi2chのバージョンは?
emacs -qでやってみたらどうなる?
> ホストに接続できないという、メッセージ
ホストに接続できない、とでるの?
0113952007/06/15(金) 18:50:52
navi2chのバージョンは、現在のものは6月初旬のCVSです。
半年以上前に使っていたときも同様の症状でした。
emacs -qで起動したときは、どのようにしてnavi2chを
読み込めばいいのでしょうか?

現在同じ動作をしてみると
Error: connection failed: operation already in progress, pc11.2ch.net, navi2ch connection
と言うエラーが出ました。
0114名無しさん@お腹いっぱい。2007/06/15(金) 19:16:05
(info "(navi2ch)Usage")
0115名無しさん@お腹いっぱい。2007/06/15(金) 19:41:47
~/.emacs開いて
(autoload 'navi2ch "navi2ch" "2ch interface for Emacs." t)
てな感じのさがして)のうしろでC-xC-e

FAQのこれはだめなの?
Q. connection failed: operation already in progress, navi2ch.sourcefoge.net,
navi2ch connection って出て起動できないんだけど…。

A. とりあえずこうしとけば?

(setq navi2ch-open-network-stream-function
#'navi2ch-open-network-stream-with-retry)
0116名無しさん@お腹いっぱい。2007/06/15(金) 20:28:29
http://navi2ch.sourceforge.net/doc/navi2ch_5.html#SEC42
0117名無しさん@お腹いっぱい。2007/06/15(金) 22:00:10
>>113
ttp://www.bookshelf.jp/2ch/unix/1065246418.html#924
ググったらこんなん見つかったけど、FreeBSD 使ってたりする?
0118名無しさん@お腹いっぱい。2007/06/15(金) 22:35:49
そもそも -nw で動作が変わるってのが不可解だよねえ。
0119名無しさん@お腹いっぱい。2007/06/15(金) 23:52:03
.emacs の window-system で振り分けてる所の中に
必要な定義が入っているとか
0120952007/06/16(土) 00:09:29
>>115, 116
ありがとうございます。
emacs -qの方は、同様のエラーが出て接続できませんでした。
FAQの方を行うと、10回程リクエストを出してもエラーは出ませんでした。

>>117
NetBSDを使っています。

>>119
そのような振り分けは入っていないと思います。
0121名無しさん@お腹いっぱい。2007/06/16(土) 11:27:40
vimのほうがいいと思われる
0122名無しさん@お腹いっぱい。2007/06/17(日) 13:15:03
Enterキー との関係をふくめて、[Control + M] と [Control + J] をとりかえたいので、

(define-key function-key-map [linefeed] [13]) ;;C-j
(define-key function-key-map [return] [10]) ;;C-m

(put 'return 'ascii-character 10) ;;C-j
(put 'linefeed 'ascii-character 13) ;;C-m

と .emacs に設定したのですが、
Enterキーが C-j に設定した動作をするようになっただけでした。

M-x describe-key [Enterキー] の結果は
C-j (translated from <return>) runs the command newline-and-indent

M-x describe-key [Control + m} の結果は
RET runs the command ispell-minor-check

どのように設定すれば、C-j を RETにできるでしょうか。
アドバイスをよろしくおねがいいたします。
0123名無しさん@お腹いっぱい。2007/06/17(日) 14:34:15
keyboard-translate-tableでどうかな?
01241222007/06/17(日) 16:27:17
>>123
"keyboard-translate-table"でググって一番上にあった、
ttp://flex.ee.uec.ac.jp/texi/faq-jp/faq-jp_78.htmlにある関数をつかって、

(swap-keys 10 13)

で望みどおりの動作をえられました。

FAQだったのですね。お恥ずかしい…
お手数おかけいたしました。
アドバイス、本当にありがとうございました。
0125名無しさん@お腹いっぱい。2007/06/17(日) 17:04:34
>>124
(info "(efaq)Swapping keys") に載ってるのではダメなの?
01261222007/06/17(日) 18:01:08
>>125
シンプルな方法を教えてくださって、どうもありがとうございます。
こういう関数もあったのですね。

(keyboard-translate ?\C-m ?\C-j)
(keyboard-translate ?\C-j ?\C-m)

で、キーの交換ができました。
これまでなんとなくとっつきにくいと敬遠していたのですが、
これからは、Infoを大切にします。
0127名無しさん@お腹いっぱい。2007/06/18(月) 06:21:36
M-x のキー配置を変えたく
(global-set-key "\C-\;" 'execute-extended-command) としたのですが
Invalid modifier in string のエラーで怒られてしまいます。
セミコロンをキーに使いたい場合はどう入力すればよいのでしょうか?
0128名無しさん@お腹いっぱい。2007/06/18(月) 07:31:36
[?\C-\;]
0129名無しさん@お腹いっぱい。2007/06/18(月) 09:39:34
>>128
根本から間違えてたんですね。
ありがとうございました。
0130名無しさん@お腹いっぱい。2007/06/18(月) 23:25:43
infoと言えば、
glibcみたいなヤツでc++用のinfoって配布してないのかな。
日本語じゃなくていいんだけどさ。

各種info集めてますよ的なサイトがあればいいんだけど
ちょっと検索して見つからないので一休み中。
0131名無しさん@お腹いっぱい。2007/06/19(火) 07:26:57
どう考えてもスレ違いなのはともかく
gccのinfoじゃいかんのか。
glibcみたいなヤツってのがようわからん
0132名無しさん@お腹いっぱい。2007/06/19(火) 07:55:41
エスパーすると、C++標準ライブラリのリファレンスマニュアルを
infoで欲しいということじゃなかろうか?
0133名無しさん@お腹いっぱい。2007/06/19(火) 11:04:03
syntax の infoかもな。
実のところ ruby や perlの infoがほしい。
perl4のころの texinfoにはお世話になった。
0134名無しさん@お腹いっぱい。2007/06/19(火) 12:55:58
ecbでjavaの変数一覧が、メソッド窓に出ないのですが。
01351342007/06/19(火) 23:32:22
しかも、cedet-1.0pre4 + ecb-2.32でjavaのソース見ても、変数一覧が出てこない。。
0136名無しさん@お腹いっぱい。2007/06/19(火) 23:33:17
つか cedet とかってまともに動作してるの?
01371342007/06/19(火) 23:45:56
>>136
> つか cedet とかってまともに動作してるの?

Σ(()ω();)
0138sage2007/06/21(木) 20:50:33
M-x replace-regexpとかで指定する置換後の文字列を入力中、
対応する括弧を入力すると数秒間ミニバッファの中が消えて
Matchsと表示されます。

括弧の対応はハイライトで見ているので、この動作を止めさせたい
のですが良い用法ありますか?
0139名無しさん@お腹いっぱい。2007/06/21(木) 22:21:44
>>138
emacs -q でおk
0140名無しさん@お腹いっぱい。2007/06/21(木) 22:53:43
さすがにそれは悲しすぎるだろ。
M-x apropos-variable paren 辺りで当りをつけてみるのがいいかと。
0141名無しさん@お腹いっぱい。2007/06/21(木) 23:33:12
>139
う、確かにemacs -q だとMatchsと出ないです。
ってことは自分の.emacsか。
それっぽいのはshow-paren-modeしか設定してない。。。

>140
おお。
いろいろやってみたところ、blink-matching-parenを
nilにすることで出なくなりました。
emacs -q の時はblink-matching-parenがtでも
Matchsとはでないので私が間違っているかもしれませんが、
思い通りの挙動になりました。

お二方ともどうもありがとうございました。
0142名無しさん@お腹いっぱい。2007/06/22(金) 17:56:43
Emacsって、マーク一箇所しかできないの?
0143名無しさん@お腹いっぱい。2007/06/22(金) 17:57:59
いーまーくす
0144名無しさん@お腹いっぱい。2007/06/22(金) 18:15:37
モードラインに行やカラムだけでなく(point)も表示したいけど
どうしたらいいのでしょう
0145名無しさん@お腹いっぱい。2007/06/22(金) 20:31:28
'(つ (書く (を 'Emacs\ Lisp)))
0146名無しさん@お腹いっぱい。2007/06/22(金) 20:52:04
mode-line-format の最後に
'(:eval (number-to-string (point)))
こんな要素を追加してみたけどうまくいかないな
0147名無しさん@お腹いっぱい。2007/06/22(金) 20:55:08
>>142
register を使う
0148名無しさん@お腹いっぱい。2007/06/22(金) 21:30:14
>>142
(setq transient-mark-mode nil)
0149名無しさん@お腹いっぱい。2007/06/22(金) 22:03:11
(let ((cell (or (memq 'mode-line-position mode-line-format)
(memq 'mode-line-buffer-identification mode-line-format)))
(newcdr '(point-indication-mode
("" point-indication-mode-string))))
(unless (member newcdr mode-line-format)
(setcdr cell (cons newcdr (cdr cell)))))

(defvar point-indication-mode nil)
(defvar point-indication-mode-string "")

(define-minor-mode point-indication-mode
:global t :group 'mode-line)

(defun point-indication-mode-line-update ()
(setq point-indication-mode-string
(format "P%d" (point)))
(force-mode-line-update))

(add-hook 'post-command-hook 'point-indication-mode-line-update)
0150名無しさん@お腹いっぱい。2007/06/22(金) 23:09:17
ありがと! こうしてみたよ。

(define-minor-mode point-indication-mode
"Toggle Point Indication mode.
With arg, turn Point Indication mode on iff arg is positive.
When Point Indication mode is enabled, the point appears
in the mode line."
:init-value nil :global nil :group 'mode-line)

(unless (member '(point-indication-mode
(:eval (concat "P" (number-to-string (point)))))
mode-line-position)
(setq mode-line-position
(add-to-list 'mode-line-position
'(point-indication-mode
(:eval (concat "P" (number-to-string (point)))))
t)))
■ このスレッドは過去ログ倉庫に格納されています