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

Emacs Part 32

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2009/10/24(土) 04:05:36
諸君、ここはかの有名な最強の汎用環境/エディタ、「Emacs」のスレッドである!

スレッドルールは以下の通り:
* 初心者にやさしく接すること
* Emacsユーザーとの仲間意識をしっかり持って、馴れ合いを怠らないこと
* このスレでのコミュニケーションを前スレ以上に活発にすること (用がなくとも、毎日の書き込みが理想)
* 部外者/非Emacsユーザーの書き込みも可。但し、女性の書き込みは場の雰囲気を乱すので不可
* 自分で書いた便利なコード/アイディアは他人とシェアしようと試みること

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
ダウンロード http://ftp.gnu.org/pub/gnu/emacs/
Windows用 NTEmacs の最新ダウンロード https://sourceforge.jp/projects/ntemacsjp/files/

CVS先端: cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs
Git: git clone git://git.savannah.gnu.org/emacs.git emacs
        _/l__
     /   く
    | ´ω`  | ぐにゅう emacs
     |    C='|
前スレ http://pc12.2ch.net/test/read.cgi/unix/1251665639/

Emacs は世界を救う!
0607名無しさん@お腹いっぱい。2009/12/07(月) 20:14:26
よくやった
0608名無しさん@お腹いっぱい。2009/12/07(月) 20:38:19
(´・ω・`)おっぱい見えてないがな
0609Zeno ◆5nZQbNmQPs 2009/12/07(月) 20:43:40

>>606
「おっぱいを」見せろ

0610名無しさん@お腹いっぱい。2009/12/07(月) 21:54:25
ただし14歳のおっぱいに限る
0611名無しさん@お腹いっぱい。2009/12/07(月) 23:44:05
>>609
うるせーはげ
0612名無しさん@お腹いっぱい。2009/12/07(月) 23:57:48
>>610
> 14歳のおっぱい
ttp://www.kyoto-np.co.jp/static/2009/09/27/P2009092700056.jpg

ttp://www.kyoto-np.co.jp/article.php?mid=P2009092700056&genre=K1&area=K00
0613名無しさん@お腹いっぱい。2009/12/08(火) 00:20:36
(#^ω^)・・・
0614名無しさん@お腹いっぱい。2009/12/08(火) 14:33:00
Emacsについて質問させてください。
現在Emacsにて、特定の処理をしています。
処理は、
replace-regexp
などを何度か行う処理なのですが、処理対象が100ファイル程度あります。
現在は手作業で1ファイルづつ行っているのですが、これを一括で行う方法などありませんでしょうか?
全てのファイルに対して行う処理は同じになります。
0615名無しさん@お腹いっぱい。2009/12/08(火) 14:42:25
なんかawkとかLL使ったほうがよくないのか
0616名無しさん@お腹いっぱい。2009/12/08(火) 14:53:34
それもそうだよな
elisp書けばいいとは思うけど
そういうのはelispもともと知っててemacsの中で完結してなきゃいやんな人向けだ
0617名無しさん@お腹いっぱい。2009/12/08(火) 15:34:32
sed使え
0618名無しさん@お腹いっぱい。2009/12/08(火) 15:52:26
>>614

こんな感じでどうだ? 動作未確認だけど

(mapc
(lambda (x)
(find-file x)
(goto-char (point-min))
(replace-regexp regexp to-string)
(save-buffer)
(kill-buffer (current-buffer)))
'("~/file_1"
"~/file_2"
"~/file_n"))
0619名無しさん@お腹いっぱい。2009/12/08(火) 16:19:28
通りすがりの凄腕を気取って
「動作未確認だけど」とか語尾につけるやつに限って
まともに動くもんださないんだよなあ…
0620名無しさん@お腹いっぱい。2009/12/08(火) 16:20:24
別に凄腕気取ってなくね?
0621名無しさん@お腹いっぱい。2009/12/08(火) 16:30:32
>>619

所詮、みんな、通りすがりだぞ www
0622名無しさん@お腹いっぱい。2009/12/08(火) 16:35:20
「動作未確認だけど」って言わずにまともに動かないよりいいんじゃね。
0623名無しさん@お腹いっぱい。2009/12/08(火) 16:37:57
Zeno様に頼めば書いてくれるんじゃね?
0624名無しさん@お腹いっぱい。2009/12/08(火) 17:18:36
>>619
どこまでひねくれてんだお前
0625名無しさん@お腹いっぱい。2009/12/08(火) 17:36:11
この業界にはそういうの多いよね。
06266142009/12/08(火) 18:36:27
すみません。
私が「など」と言ってまとめてしまったので、荒れさせてしまったようですね。
処理の中には置き換えのほかにも、indent-region等を行っているのでEmacsの機能を使っています。
現在、作業自体はすべて手作業で終えたのですが、今後の為にも何かあれば教えていただければと思います。

完全に提携の作業なので、現在はキーマクロを使ってできないかと思い調べています。
0627名無しさん@お腹いっぱい。2009/12/08(火) 18:42:52
>>626
elispを勉強すればemacs上で出来ることはなんでも自動化出来ると思うよ。
キーマクロでも全然問題ないけど。
0628名無しさん@お腹いっぱい。2009/12/08(火) 18:51:17
定型作業なら普通にsedでいいと思うけどなあ。
0629名無しさん@お腹いっぱい。2009/12/08(火) 19:28:11
618が答えてやってんだから試してみれば
0630名無しさん@お腹いっぱい。2009/12/08(火) 19:28:47
複数ファイルか否かじゃなくて、やりたい処理に適してるかどうかで
sedかelispのどっちを使うのを決めればいい。

ファイルの前後を移動して編集するような操作の自動化は、
たとえ複数ファイルでもよくelispで書くよ。

私が使うのは、with-temp-files と、insert-file-contentsの組み合わせ。
たとえば、

(let ((files (file-expand-wildcards "~/hogehoge/*.txt")))
(dolist (file files)
(with-temp-file file
(insert-file-contents file)
いろいろな処理
 )))
という感じかな。
あと insert-file-contentsを使う場合は、文字コードとかの自動判別に
気をつけてね。。。

0631名無しさん@お腹いっぱい。2009/12/08(火) 20:01:51
618のを試すついでにそれっぽくしてみた。

(defmacro with-file (filename &rest body)
  (let ((buf (gensym "--buf--")) (fn (gensym "--fn--")))
    `(let ((,fn ,filename))
       (let ((,buf (get-file-buffer ,fn)) need-close)
         (unless ,buf
           (setq ,buf (find-file ,fn) need-close t))
         (when ,buf
           (unwind-protect (progn ,@body)
             (when need-close
               (kill-buffer ,buf))))))))
(put 'with-file lisp-indent-function 1)

(defmacro edit-files (files &rest body)
  (let ((f (gensym "--f--")))
    `(mapc (lambda (,f) (with-file ,f ,@body (save-buffer))) ,files)))
(put 'edit-files lisp-indent-function 1)

(edit-files '("~/file1" "~/file2" "~/file3")
            (upcase-region (point-min) (point-max)))
0632名無しさん@お腹いっぱい。2009/12/08(火) 20:18:32
>>631
良いね。
with-file は with-temp-file でよくない?
0633名無しさん@お腹いっぱい。2009/12/08(火) 20:37:50
知らんかったのです。
0634名無しさん@お腹いっぱい。2009/12/08(火) 20:38:56
>>614
moccur-color と moccur-edit を使ってみたら?
M-x moccur-grep-find で修正箇所を洗い出して、moccur-edit と replace-regexp で一括置換。
0635名無しさん@お腹いっぱい。2009/12/08(火) 20:39:06
今日は>>633がまた新しい知識を仕入れたのを見れたのでよかったです
0636名無しさん@お腹いっぱい。2009/12/08(火) 20:39:11
あ、with-temp-fileはファイルを読み込むわけじゃないんですね。
じゃあちょっと目的が違いますね。
0637名無しさん@お腹いっぱい。2009/12/08(火) 20:41:50
目的の違いはまずget-file-bufferを見ていることからも理解してもらえるかと。
ということでwith-temp-bufferじゃダメですね。
0638名無しさん@お腹いっぱい。2009/12/08(火) 20:42:38
>>636
その用途だと、emacsユーザーの間で>>630のフレーズが
流行っているように思われる。なに使ってもいいと思うけど。

;; ファイルの中身を修正してセーブ
(with-temp-file filename
(insert-file-contents filename)
... )
0639名無しさん@お腹いっぱい。2009/12/08(火) 21:17:12
ナントカの一つ覚えという言葉はご存じないようですね。
0640名無しさん@お腹いっぱい。2009/12/08(火) 21:23:54
ナントカ?
0641名無しさん@お腹いっぱい。2009/12/08(火) 21:35:08
>>639
>>639
06426182009/12/08(火) 22:08:32
>>626
荒れてしまったのは >>619 のコメントが理由だよw

ちょっと気になったのだが、差し支えなければ、>>614 がその作業をしてる目的
などを教えてくれ。たとえば、どんなファイルをいじっているのか、とか。

>>631
macro とか、熟練者であれば理解できるだろうが、察するに >>614 には難しそ
うだな。理解できれば、非常に参考になるだろうが。
恐らく >>614 にとっては >>618 の内容についても難しいのだろう。
(もしそうでなかったら、>>614 にはその非礼をお詫びする)

>>634
moccur-color とか、どの library にあるんだろうか?
0643名無しさん@お腹いっぱい。2009/12/08(火) 22:54:18
>>642
color-moccur だった。

color-moccur
http://www.bookshelf.jp/soft/meadow_50.html#SEC743

moccur-edit
http://www.bookshelf.jp/soft/meadow_50.html#SEC766
0644名無しさん@お腹いっぱい。2009/12/08(火) 23:11:29
wanderlustスレが落ちたので、こちらで質問させてください。

wanderlustでpop3 over SSL受信しようと~/.foldersを以下のように設定しました。

&hoge@hotmail.com/user@pop3.live.com:995!

ところが、user部分に"@"が含まれているため、どうもpop3ホストと接続出来ません。
何かいい方法はありませんでしょうか。
06456182009/12/08(火) 23:59:57
>>643
ざっと見、標準の multi-occur や multi-occur-in-matching-buffers に似てる
感じだな。ありがとう。
0646名無しさん@お腹いっぱい。2009/12/09(水) 10:37:45
>>644
&"hoge@hotmail.com"@pop3.live.com:995!
でどうよ。
デフォルトが /user なので書かなくていい。書いてもいいけど。
0647Zeno ◆5nZQbNmQPs 2009/12/09(水) 12:45:05

Emacs pretest 23.1.90 が先程リリースされた。
君達も試してみなさい。


Emacs pretest 23.1.90 is now available for download via FTP, at the
following location:

ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1.90.tar.gz

The xdelta against Emacs 23.1 is here:

ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1-23.1.90.xdelta

This is the first pretest for what will be the Emacs 23.2 release.

0648名無しさん@お腹いっぱい。2009/12/09(水) 13:23:25
質問です
(add-hook 'xxx-mode-hook (lambda () ...))
として無名関数をhookに加えたものをあとからremove-hookしたいとき
3番目の引数には何を与えたらいいですか?
0649Zeno ◆5nZQbNmQPs 2009/12/09(水) 13:43:23

>>648
そもそも、後からその関数に参照したいのに、何故無名にするのだ?
関数名が何故存在するかを考えてみろ。
06505852009/12/09(水) 15:16:49
>>589
reverse solidus の前では (ascii) Char: \ (92, #o134, #x5c) point=1 of 4 (0%) column=0
yen sign の前では (latin-iso8859-1) Char: ▼ (2213, #o4245, #x8a5, file ...) point=4 of 4 (75%) column=0
となりました。

yen sign は iso8859-1 の 0xA5 にもあって unicode ではその場所に割り当てられたんですね。納得しました。

$ xbindkeys --key
(yen sign キーを叩く)
"(Scheme function)"
m:0x0 + c:132
yen

$ xbindkeys --key
(reverse solidus キーを叩く)
"(Scheme function)"
m:0x0 + c:97
backslash

確かにキーボードが送る文字コードは異なるようです。
レス遅くなってすみません。
06515852009/12/09(水) 15:17:55
>>590
ファイル保存時に yen sign が reverse solidus に変換されていました。
これは便利です。ありがとうございます。

>>591
> ちなみに昔のEmacsでは、キーボードからyen signを受け取っても、
> reverse solidusに変換していた。

なるほど。だから sarge の頃にキーボードの yen sign を叩いても reverse solidus が
表示されたんですね。モヤモヤがとれました。
0652名無しさん@お腹いっぱい。2009/12/09(水) 19:59:44
Emacs上でtwitterやりたいんですが
何かいい方法ありませんか?
0653Zeno ◆5nZQbNmQPs 2009/12/09(水) 20:02:03

>>652
twit.el を使え。 https にも対応しているのはこれだけだ。
初期設定の face は汚いが、自分でカスタマイズすれば常用できるレベルだ。
0654名無しさん@お腹いっぱい。2009/12/09(水) 20:25:45
twittering-mode.elはだめ?
日本人が作ってるよ!githubでガンガン改良されてるし。
0655名無しさん@お腹いっぱい。2009/12/09(水) 21:06:28
>>646

ありがとうございます。当方、Meadow3 + Cygwin-1.5 + wl-2.15.7で、
gmailとYahooはSSL接続で使えていますが、何故かhotmailだけは、

Getting header...

で止ってしまいます。認証はうまくいっているのですが。hotmail側の問題でしょうか。
0656名無しさん@お腹いっぱい。2009/12/09(水) 21:19:58
twitterって今から始めても馴染める?
30過ぎのオッサンでも受け入れてもらえる?
0657Zeno ◆5nZQbNmQPs 2009/12/09(水) 21:33:13

>>656
受け入れられるも何も、twitter はそもそも馴れ合いの場ではないし、
それには全く適していない。

あくまでもニュースやブログなどのアップデートをトラックできるある種の
フィードリーダーとして使用するのが twitter の正しい使い方だ。

極力 read-only 状態を保てば短命では終わらないだろう。
逆に、下らん "つぶやき" など続けて投稿してしまった場合、
フォロワーが増え、次第に投稿数が減っていくことに気付くだろう。
0658名無しさん@お腹いっぱい。2009/12/09(水) 22:34:54
下らねえ雑談してんじゃねーよ
0659名無しさん@お腹いっぱい。2009/12/09(水) 22:54:45
twitterは馴れ合いの場所です。
0660名無しさん@お腹いっぱい。2009/12/09(水) 23:08:56
質問させて下さい。

grep-edit で編集した後、バッファがハイライトし続けるのを解除させたいのですが、ご存知でしょうか?
0661名無しさん@お腹いっぱい。2009/12/09(水) 23:31:38
twitterって、2ちゃんとなにが違うのかよくわからなくて使ってないな。
つぶやきならいつもこのスレとかに書いてるし。
0662名無しさん@お腹いっぱい。2009/12/10(木) 00:05:50
違いは明らかだろ。twitterは匿名じゃないし。
自分の場合、twitterで知り合ってオフで会った人が20人以上はいる
0663名無しさん@お腹いっぱい。2009/12/10(木) 00:09:33
売春にも使えるね!
0664名無しさん@お腹いっぱい。2009/12/10(木) 00:10:05
すけべ
0665名無しさん@お腹いっぱい。2009/12/10(木) 07:44:22
売春といえばfacebook
0666名無しさん@お腹いっぱい。2009/12/10(木) 09:28:50
facebookに相当するのはmixiだよね

twitterはリア充の道具だから俺らには関係ない
0667名無しさん@お腹いっぱい。2009/12/10(木) 18:07:58
なぜそんなどうでも良い話をするのか
0668名無しさん@お腹いっぱい。2009/12/10(木) 18:10:28
ここが糞スレだから
0669名無しさん@お腹いっぱい。2009/12/10(木) 18:26:36
この際、Emacsだけで完結するコミュニケツールつくったらどうだろう。
Emacsの専用モードをクライアントとして分散モデルとかなら求心力あるな。
0670名無しさん@お腹いっぱい。2009/12/10(木) 20:50:11
ユーザが思ったより少なくなってる事実を知って驚愕することになりそう
0671名無しさん@お腹いっぱい。2009/12/10(木) 20:53:53
いつと比べてだよ
0672名無しさん@お腹いっぱい。2009/12/10(木) 21:08:19
最近は vim ブームっぽいところがあるね。
VC, Eclipse とかにも流れてそう。キーバインドだけ Emacs 風に、とか。
0673名無しさん@お腹いっぱい。2009/12/10(木) 21:08:24
うちの会社の先輩方はなぜかほとんどtextmateに流れてる。
俺だけ頑なにemacs使ってるけど。
0674名無しさん@お腹いっぱい。2009/12/10(木) 21:12:57
特定のエディタに固執するのって日本人だけみたいだけどね。
外人はプロジェクトごとにエディタも変えるのが普通だし。
0675名無しさん@お腹いっぱい。2009/12/10(木) 21:31:12
>>672
たしかに微妙に増えたなーとは思う。
VCはしかたないよ。あれはインテリセンス込みでの言語だから。
0676名無しさん@お腹いっぱい。2009/12/10(木) 22:04:04
lisp勉強中の初心者です。

iimage-modeで、環境変数で設定したパスを認識させるには、どのようにすればいいでしょうか?
例えば、以下ような感じです。

[[${HOME2}/docs/images/hoge/png]]

宜しくお願い致します。
0677名無しさん@お腹いっぱい。2009/12/10(木) 22:10:44
>>676
getenv
06786762009/12/10(木) 22:40:03
>677

[[(concat (getenv "HOME2") "/docs/images/hoge.png")]]

とかやってみましたが、うまくいきませんでした orz.
06796762009/12/10(木) 22:41:05
>677

[[(concat (getenv "HOME2") "/docs/images/hoge.png")]]

とかやってみましたが、うまくいきませんでした orz.
0680名無しさん@お腹いっぱい。2009/12/10(木) 23:34:35
>>671
> いつと比べてだよ

「翻訳を支援するelispのプログラムありませんか?」と呼びかけると、
主要な理工系大学から*.elが10個くらい集まってきたころと比べて。
0681名無しさん@お腹いっぱい。2009/12/10(木) 23:58:07
fj 華やかなりし頃は emacs か!? vi か!? って感じだったよなぁ。
大学卒業しちゃうと elisp 書いてる暇なくなってくるのかもね。
0682名無しさん@お腹いっぱい。2009/12/11(金) 00:21:53
fjって何ですか??
0683名無しさん@お腹いっぱい。2009/12/11(金) 01:30:56
大学って今でもemacs優勢なの?
理工系出て新卒で入った子は誰もemacs使ってないんだけど。
0684名無しさん@お腹いっぱい。2009/12/11(金) 02:31:18
今は開発環境にエディタ内包なのが当たり前になってるから、
Emacs使う人が減ってるのもしょうがない。
ただ、Emacsも地味に進化してるし開発が停滞しない限りは
今の人気でも全然いいけどね。
0685名無しさん@お腹いっぱい。2009/12/11(金) 08:45:01
疎いのだけど進化してるか?
何か進化したなーという機能ってなに?
0686名無しさん@お腹いっぱい。2009/12/11(金) 08:45:18
>>683
うん、だから使ってた人が一杯いたころの層が卒業しちゃってから地味に停滞したというか。
今でも一定の人は使ってると思うけど。
0687名無しさん@お腹いっぱい。2009/12/11(金) 09:31:31
>>683
> 大学って今でもemacs優勢なの?
> 理工系出て新卒で入った子は誰もemacs使ってないんだけど。

Windows95が出たあたりからemacsを使わなきゃならない理由がなくなったから、
相関関係はないでしょ。

最近の東京と銘打ったemacs勉強会が、むかし学内で毎月やってたemacs勉強会より
レベルが低いんだぜ。

ていうか、数年前にWeb関係の連中がemacsを再発見してから(おまいら抜きで)再勃興
している最中だと捉えるのが正しいのかもしれんね。
0688名無しさん@お腹いっぱい。2009/12/11(金) 09:47:48
>ていうか、数年前にWeb関係の連中がemacsを再発見してから(おまいら抜きで)再勃興
>している最中だと捉えるのが正しいのかもしれんね。

あーそうかもねえ

0689名無しさん@お腹いっぱい。2009/12/11(金) 13:31:14
UbuntuあたりからLinuxが一定の地位を得てきて
非Windowsでも動く包括的なプログラミング環境としてEmacsを知る機会も増えたから
ユーザーの絶対数は変わってない気がする。
ほんとうは増えてるべきなんだけどね。選択肢が増えたぶん流出してるのは確か。
0690名無しさん@お腹いっぱい。2009/12/11(金) 14:25:35
とはいえ、いろんなOSで動いて資産も豊富なエディタって
Emacsとvimしかないじゃん。

知らない人に無理に進める気はないけどさ。
0691名無しさん@お腹いっぱい。2009/12/11(金) 15:19:53
ユーザー数よりelisp書く人が減ったんだろ
elisp書くならeclipseのプラグイン作った方が面白いもの作れるし
eclipseのリファクタなんかはelispじゃどう頑張っても無理
0692名無しさん@お腹いっぱい。2009/12/11(金) 15:22:20
>>691
それがお前の主観以上のものだって証拠は?
お前の意見なんてどうでもいいんだよ
0693名無しさん@お腹いっぱい。2009/12/11(金) 15:36:43
ユーザ数云々はどうでもいいが
eclipse に負けている部分があるのは同意
0694名無しさん@お腹いっぱい。2009/12/11(金) 15:52:41
全部主観だろw
0695名無しさん@お腹いっぱい。2009/12/11(金) 16:07:20
趣味でelisp書いてた連中が違うツールやサービスに流れたのは事実だと思う
0696名無しさん@お腹いっぱい。2009/12/11(金) 16:09:37
むしろelisp書けない人程emacs原理主義的だったりするのな。
主観だけど。
0697名無しさん@お腹いっぱい。2009/12/11(金) 16:14:16
特定のソフトウェアに固執するのは、いつだってうすらバカ。
0698名無しさん@お腹いっぱい。2009/12/11(金) 16:14:29
ギクッ
0699名無しさん@お腹いっぱい。2009/12/11(金) 16:52:37
別にEmacsはDBでいうところの界王神的ポジションでいいんじゃないの。
0700名無しさん@お腹いっぱい。2009/12/11(金) 17:00:54
Eclipse で elisp が動くなら乗り換えるわ
0701名無しさん@お腹いっぱい。2009/12/11(金) 17:34:26
つーかさ、何度か話題にあがってるけど elisp 自体はあんまり受けよくないんだよね。
lisp 好きな人からすると。

>>700 は elisp が好きなの?それとも emacs 上で使ってたプログラムが流用出来たら
嬉しいって考えなの?
0702名無しさん@お腹いっぱい。2009/12/11(金) 17:43:51
>>701
> つーかさ、何度か話題にあがってるけど elisp 自体はあんまり受けよくないんだよね。
> lisp 好きな人からすると。

Lispもどきだもん
0703名無しさん@お腹いっぱい。2009/12/11(金) 17:51:19
書いてると結構イライラするよな
0704名無しさん@お腹いっぱい。2009/12/11(金) 17:55:28
>>701
後者。
今使っているいろいろな elisp が Eclipse 上で動けばいいだけ。
0705名無しさん@お腹いっぱい。2009/12/11(金) 18:05:55
それだけならElisp動かすEclipseプラグインかるくこさえればいいじゃん。
0706名無しさん@お腹いっぱい。2009/12/11(金) 18:07:39
「かるくこさえればいいじゃん」?
■ このスレッドは過去ログ倉庫に格納されています