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

Emacs part 27

■ このスレッドは過去ログ倉庫に格納されています
0001Zeno2008/11/09(日) 08:48:02
諸君、ここはかの有名な最強の汎用環境/エディタ、「Emacs」のスレッドである!

スレッドルールは以下の通り:
* 初心者にやさしく接すること
* Emacsユーザーとの仲間意識をしっかり持って、馴れ合いを怠らないこと
* このスレでのコミュニケーションを前スレ以上に活発にすること (用がなくとも、毎日の書き込みが理想)
* 部外者/非Emacsユーザーの書き込みも可。但し、女性の書き込みは場の雰囲気を乱すので不可
* 自分で書いた便利なコード/アイディアは他人とシェアしようと試みること
        _/l__
     /   く
    | ´ω`  | ぐにゅう emacs
     |    C='|
* Emacs スレッドのマスコットキャラである「ぐにゅう君」 (↑のAA) と
吾 (Zeno ◆5nZQbNmQPs) への挨拶も忘れないように!

GNU Emacs - Free Software Foundation (FSF) http://www.gnu.org/software/emacs/
EmacsWiki http://www.emacswiki.org/
Emacs 電子書棚 http://www.bookshelf.jp/
Emacs CVS Repositories [Savannah] http://savannah.gnu.org/cvs/?group=emacs
Emacs Lisp List http://www.damtp.cam.ac.uk/user/sje30/emacs/ell-date.html
最新の stable リリース (22.2) のダウンロード http://ftp.gnu.org/pub/gnu/emacs/emacs-22.2.tar.gz
Windows用 NTEmacs の最新ダウンロード https://sourceforge.jp/projects/ntemacsjp/files/

前スレ http://pc11.2ch.net/test/read.cgi/unix/1218093847/
CVS先端: cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs

Emacs は世界を救う!
0100名無しさん@お腹いっぱい。2008/11/17(月) 14:32:49
いいじゃん good enough で。
0101名無しさん@お腹いっぱい。2008/11/17(月) 14:33:55
>>99
そういう意見を一番明確に持ってるのは言いだしっぺだよ。
0102名無しさん@お腹いっぱい。2008/11/17(月) 14:38:00
>>101
文句たらたらで自分からは何もしないタイプの人間か。
もっと能動的になれ。
0103名無しさん@お腹いっぱい。2008/11/17(月) 14:48:16
>>102
お前が一番そのタイプ以上の害だと思うよ。
うじうじ言うしか出来ないタイプの人間じゃん
0104名無しさん@お腹いっぱい。2008/11/17(月) 14:50:27
具体的に、どんなチュートリアルが欲しいの?
0105名無しさん@お腹いっぱい。2008/11/17(月) 14:54:34
elispでcommon lispのiterateやseriesを実装するような
0106名無しさん@お腹いっぱい。2008/11/17(月) 16:10:21
「船頭が多すぎる」
0107名無しさん@お腹いっぱい。2008/11/17(月) 16:56:18
> Windowsなので恐縮ですが、Emacs使うにあたり
まだ導入してないのかな?
0108名無しさん@お腹いっぱい。2008/11/17(月) 23:02:12
チラシの裏。

Emacs22.1.1で、あるファイルをShift_JISで保存しようとしたが、なぜか
EUC-JP (その環境のロケール)になってしまう。

散々調べた末に、Shift_JISに変換できない文字「〜」(波ダッシュ)が含まれ
ていることに気が付いた。これを「箸キ」(全角チルダ)に変換したら、問題な
く保存できた。

保存時にエラー出すとかしておくれよEmacs。なんで勝手にエンコーディングを
変えてしまうんだよ。
0109名無しさん@お腹いっぱい。2008/11/17(月) 23:06:26
ありゃ?2chでも文字化けしてしまった。すまん。
つうか、>>108の波ダッシュと全角チルダは名前が逆になるようだ。
詳しくはこちら。
http://ja.wikipedia.org/wiki/Unicode
0110名無しさん@お腹いっぱい。2008/11/17(月) 23:17:52
good enough と言えば、シンディーローパーを思い出す。
0111名無しさん@お腹いっぱい。2008/11/17(月) 23:24:19
>>108
つ mule-cmds.elのselect-safe-coding-system〜
0112名無しさん@お腹いっぱい。2008/11/17(月) 23:30:46
>>100
俺はgoo電脳府と読めたので、NTT(goo)を中心とするE政府計画が隠されているのだ、と感じた。
0113名無しさん@お腹いっぱい。2008/11/17(月) 23:51:29
つ 電脳麸
0114名無しさん@お腹いっぱい。2008/11/18(火) 03:59:58
拡張子でmodeを判断するのでなく、ファイルの1行目に

<?php

と書かれていたらphp-modeにするとかはできますか?
0115名無しさん@お腹いっぱい。2008/11/18(火) 04:42:33
(add-to-list 'magic-mode-alist '("<\\?php" . php-mode))
0116名無しさん@お腹いっぱい。2008/11/18(火) 04:49:53
>>115 thx
Meadow3にはそんな便利な機能があるのですね。
Ver. UP しようかな。
0117名無しさん@お腹いっぱい。2008/11/18(火) 05:05:24
Members3 というか Emacs 22.1 から。
初期値が nil になってるけれど、cvsのころはそうじゃなくて
auto-mode-alist が効かなくてorzだった。
0118名無しさん@お腹いっぱい。2008/11/18(火) 05:20:42
>>117
Members3?
0119名無しさん@お腹いっぱい。2008/11/18(火) 11:18:26
稲垣さんですね わかります
0120名無しさん@お腹いっぱい。2008/11/18(火) 11:21:57
おまえはあまりにも分かりすぎる
0121名無しさん@お腹いっぱい。2008/11/18(火) 11:26:47
>>117
Me しか当ってないがなw
しかも、複数形にしてるし。
タイポの域を越えてるな。
0122名無しさん@お腹いっぱい。2008/11/18(火) 11:37:22
さすがにネタだろ?
つまらんネタひっぱってもしょうがない。
0123名無しさん@お腹いっぱい。2008/11/18(火) 11:41:26
Me<予測><確定>ってやっちまったんだろ。
0124名無しさん@お腹いっぱい。2008/11/18(火) 11:48:05
dabbrevだったら確定いらないけどな。
でも、予測しても自分の目で確認するとおもうんだわ。
"3" はしっかり打ってるあたりが怪しい。
0125名無しさん@お腹いっぱい。2008/11/18(火) 12:56:34
"Me"を打ったところで予測候補群がポップアップして、3番を選択しようとしたら、
手が痙攣的に動いて先にEnterを押してしまって、第1候補のMembersが確定され、
そのあとにそのまま3の字が書き込まれてしまったんだろ。
0126名無しさん@お腹いっぱい。2008/11/18(火) 13:29:50
お前等、ミニバッファで<enter>打ったら、それをミニバッファの履歴に記憶できて、
しかもカーソルがまだミニバッファから離れないようにするやり方教えろ。
0127名無しさん@お腹いっぱい。2008/11/18(火) 13:47:33
履歴には普通に記録されてるじゃん。
0128名無しさん@お腹いっぱい。2008/11/18(火) 13:48:56
>>127
悪い、もう>>126のやり方思いついちゃった。テヘッ
0129名無しさん@お腹いっぱい。2008/11/18(火) 15:34:27
これって使ってる人いる?
http://www.emacswiki.org/cgi-bin/wiki/PredictiveMode

どうよどうよ?

面白そうなパーツがあるなあ。
0130名無しさん@お腹いっぱい。2008/11/18(火) 16:51:14
キーボードインプットの書き込みのみ不可な
バッファを作りたいんですが、どうすればいいですか?
0131名無しさん@お腹いっぱい。2008/11/18(火) 17:23:31
>>130
read-onlyにすればいいだけじゃないの?
0132名無しさん@お腹いっぱい。2008/11/18(火) 17:42:32
以前、dabbrev を拡張して候補が見付かれなければ自動的に単語リストを
読み込んでくれるものがあったんですが、
今もどこかにあるんでしょうか?
0133名無しさん@お腹いっぱい。2008/11/18(火) 19:39:45
>>129
使用している。デフォルトのCompletion UIでの補完は使いにくかったから、
auto-complete.elで補完するようにしている。
補完した場合、辞書を更新するようなelispはまだ自分では書けていないけど。
もうpredictive-modeとflyspell-modeなしには
英語を書く気にはなれなくなってしまった。本当にありがたいelispだと思う。



0134名無しさん@お腹いっぱい。2008/11/18(火) 20:34:25
>>129
まだまだ使い心地は良くなりそうではあるが、良さげだな。
今は単語にしか対応してなさそうだね。
自分でフレーズや複合語にも対応したの書こうかな。
0135名無しさん@お腹いっぱい。2008/11/18(火) 21:38:03
辞書形式ならプログラム書く時にも使えそうだ。
auto-complete.el より気楽に単語の追加できそうだから試してみよう。
0136名無しさん@お腹いっぱい。2008/11/18(火) 22:39:58
ShopUにポメラが出てるが、これのEmacs版とかあったらすげーよさそうだな
0137名無しさん@お腹いっぱい。2008/11/19(水) 16:12:21
overlay がかかった文字列 s に対して (message s)
とすると、s の overlay が消されて表示してしまうんですが、
どうにかしてそのまま表示することはできませんか?
0138名無しさん@お腹いっぱい。2008/11/19(水) 17:04:53
emacsのpythonシェルを
LANG=C python
にして動かしたい
どこいじればいいんだろう
0139名無しさん@お腹いっぱい。2008/11/19(水) 17:17:43
C-u M-x run-python
Python Program: env LANG=C python
0140名無しさん@お腹いっぱい。2008/11/19(水) 17:17:46
>>137
「overlay がかかった文字列 s」をどうやって作れたのですか?



0141名無しさん@お腹いっぱい。2008/11/19(水) 17:19:15
>>139
恒久的に設定したければ、
(setq python-comman "〜")
0142名無しさん@お腹いっぱい。2008/11/19(水) 17:41:10
ある文字列をミニバッファ上に任意の時間 (例えば5秒間)
は sticky に表示し続けることって可能ですか?
0143名無しさん@お腹いっぱい。2008/11/19(水) 18:30:38
>>142
可能です
0144名無しさん@お腹いっぱい。2008/11/19(水) 18:36:55
>>143みたいなやつって何を考えてレスしてるんだろうな。
自分では役に立ってると思ってんのかな。
0145名無しさん@お腹いっぱい。2008/11/19(水) 18:39:13
>>144がまったく役に立っていない件
0146名無しさん@お腹いっぱい。2008/11/19(水) 18:43:29
役に立たない者同士仲良くしろよ。
0147名無しさん@お腹いっぱい。2008/11/19(水) 18:45:35
役立ち判定技師の集いはここですか?
0148名無しさん@お腹いっぱい。2008/11/19(水) 18:59:30
その用途ならzenityとsleep使うわ
ミニバッファなんて常に書き換えられるから、
まともに機能するようなものを作ろうとなるとかなり大変そうだし
0149名無しさん@お腹いっぱい。2008/11/19(水) 19:45:41
>>137
インタラクティブに実行すればできる。
0150名無しさん@お腹いっぱい。2008/11/19(水) 19:59:37
>>149
どの関数をインタラクティブに実行すればできるのでしょうか?
0151名無しさん@お腹いっぱい。2008/11/19(水) 20:14:07
ebrouseでtag jumpする方法が検索してもみつからないです
ひょっとして出来無いの?
0152名無しさん@お腹いっぱい。2008/11/19(水) 20:17:44
できないんじゃない。
0153名無しさん@お腹いっぱい。2008/11/19(水) 20:56:59
>>148
(for ((i=0;i<100;i+=4)) ; do echo $i ; sleep 1; done) | zenity -progress -auto-close
こんなのを実行する感じですか?

でもemacsでやりたいんですよね。
0154名無しさん@お腹いっぱい。2008/11/19(水) 21:15:32
このスレは、質問してる奴の方が「できる人」っぽいという不思議なスレだな。
0155名無しさん@お腹いっぱい。2008/11/19(水) 21:58:01
>>148
書き換えられても一瞬で元に戻りやがるやついるやん
0156名無しさん@お腹いっぱい。2008/11/19(水) 22:45:47
>> 148
ミニバッファにこだわらず、
小さめの別バッファ(ウィンドウ)作って、そこに書いて、5秒後に消す、
とかじゃだめなの?
0157名無しさん@お腹いっぱい。2008/11/19(水) 23:41:05
>>156
そんなんじゃ、それっぽくないだろ。
0158名無しさん@お腹いっぱい。2008/11/20(木) 03:22:07
Emacsの80%はそれっぽさで出来ているようなものだ。

という格言は忘れるべきではない。
0159名無しさん@お腹いっぱい。2008/11/20(木) 03:32:29
>>155
それってなに?
0160名無しさん@お腹いっぱい。2008/11/20(木) 04:31:13
>>154
> このスレは、質問してる奴の方が「できる人」っぽいという不思議なスレだな。

一部、解答(したふりを)している人間にホラ吹きがいるようだからね。
0161名無しさん@お腹いっぱい。2008/11/20(木) 04:33:37
ボロが出るから、回答は具体的じゃ無いほうがいいんだよ

0162名無しさん@お腹いっぱい。2008/11/20(木) 04:34:17
>>161
だからホラ吹きなんじゃん。
0163名無しさん@お腹いっぱい。2008/11/20(木) 04:46:26
大丈夫,誰も解答者がホラ吹きじゃないとか言ってない
0164名無しさん@お腹いっぱい。2008/11/20(木) 08:23:31
フレーム内に1つのwindow (buffer)しか表示していない状態で
(pop-to-buffer foo) や (display-buffer foo) を実行すると、
フレームの下半分に foo のバッファがポップアップされますが、
上のバッファがポップアップされた間隔分、上に持ち上げられてしまい、
その後、下のポップアップバッファ上で (delete-buffer)をしても、
前の視点が戻りません (画面が上に持ち上げられたまま)。

(pop-to-buffer foo) をしても、元のバッファの視点は同じで、
ポップアップされた間隔分上に持ち上げられなくするにはどうすればいいですか?
0165名無しさん@お腹いっぱい。2008/11/20(木) 08:42:58
(save-window-excursion (progn (split-window-vertically) (read)))
0166名無しさん@お腹いっぱい。2008/11/20(木) 09:34:39
>>165
(read) が read_minibuffer を中で実行してるみたいですね。
実際それでやっても同様のことができました。
どうやって状態を保存してるのかは時間がなくてトレースできなかったのですが、
(read) は何かのインプットを待ち構えてしまうので、できるなら
そうならずに同様のことができれば最高なんですが。。
0167名無しさん@お腹いっぱい。2008/11/20(木) 12:56:49
>>141
python.el
でlocale関係の命令呼ばれるとエラーでる
それやっても治らなかった
0168名無しさん@お腹いっぱい。2008/11/20(木) 13:03:19
python.elで
import pylab
したいだけなのに変に苦労しないといけないのはpython.el使ってる人が実はあんまりいないってことなのか
0169名無しさん@お腹いっぱい。2008/11/20(木) 13:10:02
>>168
そういうことだ。
0170名無しさん@お腹いっぱい。2008/11/20(木) 15:35:27
Next Emacsing
0171名無しさん@お腹いっぱい。2008/11/20(木) 17:24:29
emacs-22でdefaultで新規バッファ作成時に作成日時とかファイル名が
自動で挿入されるんですが保存したときに体裁が崩れてしまいます。
修正したいんですがどこで(どういう関数が)この挿入をしているのか
わかりません。どなたかおしえてくだしあ
;;
;; tmp.el
;;
;; Made by A A
;; Login <a@a-laptop>
;;
;; Started on Sun Nov 6 00:00:00 2008 A A
Last update Sun Nov 6 00:00:03 2008 A A
↑こういうのです
0172名無しさん@お腹いっぱい。2008/11/20(木) 17:49:37
>>164
(let ((s (window-start)))
(display-buffer foo)
(set-window-start (selected-window) s))

とか

(let ((s (window-start))
(w (selected-window)))
(pop-to-buffer foo)
(set-window-start w s))

でいいのでは。で、 foo に用が無くなったら

(delete-window-on foo)
0173名無しさん@お腹いっぱい。2008/11/20(木) 18:35:39
>>172
少なくとも私の環境では、どちらを試しても
ポップアップされた間隔分、上位のバッファが上に持ち上げられますね
(カーソルが元々画面の半分目以下に位置していた場合)。
その点、C の read_minibuffer 関数を内部で使用している関数 (例えば
>>165さんの (read) ではその現象が生じないんです。
ただ、その場合、何かのインプット待ち状態になってしまうので、融通がきかないのです。
0174名無しさん@お腹いっぱい。2008/11/20(木) 20:44:46
SKK Part5
http://pc11.2ch.net/test/read.cgi/linux/1067706152/551
で, リージョンの文字をSKKの辞書形式に変換するelispを書いたのですが,
わからないことがあるので質問させてください.

上記の関数ではreplace-regexp-in-string でマッチした文字を16進数に
変換するためにformatを使っているのですが, あらかじめ設定した変数を
渡さずにマッチした文字を取得する方法がわかりませんでした.
match-stringで取れるかと思ったのですが, replace-regexp-in-string内部
では使えない(?)みたいです.それができれば
(kill-new
(concat
"(concat \""
(replace-regexp-in-string
"[\\\\;/\r\n\"]"
(format "\\x%x" (string-to-char 一致した文字))
(buffer-substring (region-beginning) (region-end)) nil t)
"\")"))
みたいに綺麗に書けるはずなので, ぜひやり方を知りたいです.

; formatの上にconcatとか激しく無駄だ…orz
0175名無しさん@お腹いっぱい。2008/11/20(木) 20:48:36
>>171
autoinsertだっけ
0176名無しさん@お腹いっぱい。2008/11/20(木) 20:49:27
わざわざ他人のフリして聞いてるそのスレで、ちゃんとヒント書いてもらってるじゃん。
0177名無しさん@お腹いっぱい。2008/11/20(木) 21:03:23
>>176
了解です. もう一度マニュアルを読み直してみます.
0178名無しさん@お腹いっぱい。2008/11/20(木) 21:12:39
>>175 ありがとうございます。
個人で雛形を用意してauto-insertを使って雛形を挿入するとそ
の雛形にさらに>>171みたいなのを追加するんで困ってます。
defaultのどこかの設定がやっていると思うのですが自分では探
せませんでした。
バッファを保存するとコメントになっていた
;; Last update Sun Nov 6 00:00:03 2008 A A

Last update Sun Nov 6 00:00:03 2008 A A
のように置き換えてしまいます。どうしたらよいでせうか
0179名無しさん@お腹いっぱい。2008/11/20(木) 21:57:45
>>173
(current-window-configuration)の値を自分で管理。

(setq x (current-window-configuration))

(set-window-configuration x)
0180名無しさん@お腹いっぱい。2008/11/20(木) 22:12:46
>>178
その動き、timestamp じゃないか?
time-stamp-line-limit
time-stamp-format
time-stamp-start
time-stamp-end
このへんの設定を教えてもらえれば分かるかも。
0181名無しさん@お腹いっぱい。2008/11/20(木) 23:10:49
>>180 ご親切にありがとうございます。
すいません。力不足でtime-stamp-*の値とかどうなってるのか
調べられませんでした。
見当違いかもしれませんが自分の.emacsにはtime-stampの設定で
(if (not (memq 'time-stamp write-file-hooks))
(setq write-file-hooks
(cons 'time-stamp write-file-hooks)))
と書いています。
01821722008/11/20(木) 23:20:41
>>173
じゃ、 read の代わりに recursive-edit を使って、

(save-window-excursion (display-buffer foo) (recursive-edit))

または

(save-window-excursion (pop-to-buffer foo) (recursive-edit))

元に戻すときは

(exit-recursive-edit)

でどうですかね。 recursive-edit から抜けるのを忘れそうですが。
0183名無しさん@お腹いっぱい。2008/11/20(木) 23:27:47
>>181の続きで症状をもう少し詳しく説明しますとバッファ
を保存するたびに
Last update Sun Nov 6 00:00:03 2008 A A
の後ろが二文字ずつ削除されていき、
Last update Sun Nov 6 00:00:03 2008 A Ahogehogehoge..
のようにその下の行がくっついてしまいます。
0184名無しさん@お腹いっぱい。2008/11/20(木) 23:29:42
text-modeを使っていてTABを押したら意図しないような一杯TABが挿入されていて、
調べてみたらどうやらindent-relativeが関連してるらしい。

無効に設定できないものですか?

教えて下さい。
0185名無しさん@お腹いっぱい。2008/11/20(木) 23:43:58
indent-line-functionにtab-to-tab-stopを設定すれば良かったっけ
0186名無しさん@お腹いっぱい。2008/11/20(木) 23:51:07
>>181
*scratch* バッファにこれ書いて、最後の ) のうしろで C-j 押して出た結果を教えて。
(format "%d\n%s\n%s\n%s\n"
time-stamp-line-limit
time-stamp-start
time-stamp-end
time-stamp-format)
0187名無しさん@お腹いっぱい。2008/11/20(木) 23:53:14
>>185
書き方がわかりません。。。

lispの本買って勉強しますから
今回は.emacsに書くスクリプトの形式で教えてくれませんか?
0188名無しさん@お腹いっぱい。2008/11/20(木) 23:54:29
>>184
「無効」って、どういう状態を期待しているの?

text-mode ってソースコードを書くためのものじゃないから、
インデントは前の行に合わせたほうが都合がいいんじゃないかと思うんだけど、
常に固定幅のタブを挿入したいのならば >>185 のような方法になると思う。
0189名無しさん@お腹いっぱい。2008/11/20(木) 23:59:30
>>187
(add-hook 'text-mode-hook
'(lambda ()
(setq paragraph-start "^\\([-  ・<\t\n\f]\\|(?[0-9a-zA-Z]+)\\)")
(setq indent-line-function tab-to-tab-stop)
;;(setq indent-tabs-mode nil)
))
こんな感じかな。
タブじゃなくて半角空白で埋めたいなら、2つめのコメントを外して。
0190>>188>>1892008/11/21(金) 00:00:57
連投してごめん。
>>189の paragraph-start の設定はオレの好みなので無視してください。
0191名無しさん@お腹いっぱい。2008/11/21(金) 00:43:04
M-x calendar ではx押すと祝日の日に色がつきますが、
自分で書いたdiaryの日にも祝日とは別の色をつけたいのですが、どうやればいいのやら・・・(できるの?)
0192名無しさん@お腹いっぱい。2008/11/21(金) 00:59:02
メニューキー(keycode 117) を Control キーに割り当てたいんだけど、
emacs22 でどうやって書けば良いの?
0193>>188>>1892008/11/21(金) 01:03:41
-nw ではムリだと思います。~/.Xmodmap をいじったほうがいいんじゃない?
0194名無しさん@お腹いっぱい。2008/11/21(金) 01:38:15
>>191
m を押せば?
0195名無しさん@お腹いっぱい。2008/11/21(金) 01:49:52
>>194
thx微妙に色変わってたw
あとはfont-lockいぢればいいのですねありがとうございました
0196名無しさん@お腹いっぱい。2008/11/21(金) 01:55:26
-nwだとメニューってお飾りなん?
0197名無しさん@お腹いっぱい。2008/11/21(金) 02:00:29
M-`あたりで使えた気がする
0198名無しさん@お腹いっぱい。2008/11/21(金) 02:16:35
>>151
C-c Enter . じゃダメなの?
もちろんBROWSEファイルを読み込んでおかないとダメだけど。
0199名無しさん@お腹いっぱい。2008/11/21(金) 06:55:40
>>174
こいつバカすぎて笑った
■ このスレッドは過去ログ倉庫に格納されています