トップページ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 は世界を救う!
0329名無しさん@お腹いっぱい。2008/12/04(木) 15:32:55
>>328
グダグダ言わずに早く書いてくれませんかね?

ヒント:
(copy-keymap foo)
(use-local-map foo)
(make-sparse-keymap)

上の関数を使えば比較的容易にできると思います。
0330名無しさん@お腹いっぱい。2008/12/04(木) 15:51:52
>>324 では mlterm と urxvt とで何処が違うかが明かではないので、x-selection-value
の差し替えは本質的解決ではありませんね。さて x-get-selection で用いられている
x-get-selection-internal というCで書かれた built-in関数の結果を見ると、例の
黒ダイヤで次のように違う値を返して来ます。

; mterm
(x-get-selection-internal 'PRIMARY 'COMPOUND_TEXT)
#("^[$(O&<" 0 6 (foreign-selection COMPOUND_TEXT))

; urxvt
(x-get-selection-internal 'PRIMARY 'COMPOUND_TEXT)
#("^[%G\342\231\246^[%@" 0 9 (foreign-selection COMPOUND_TEXT))

一方、上の 'COMPOUND_TEXT の所を 'UTF8_STRING で評価すると、同じ結果が
返って来ます。Emacs22.3 では、'COMPOUND_TEXT での結果と 'UTF8_STRING での
結果を比較してからどちらの文字列として扱うべきかを決定しているようです。
0331名無しさん@お腹いっぱい。2008/12/04(木) 19:27:05
>>327
まだですか?
0332名無しさん@お腹いっぱい。2008/12/04(木) 20:10:01
すみませんが、質問です。リージョンを単に解除する関数はありませんか?

選択した範囲からデータを取得する、あるコマンドに手を加えているのですが、
処理の最後で範囲選択を解除したいのです。
03333272008/12/04(木) 20:12:32
>>332
(deactivate-mark)

私の質問の解答待ちに、割り込んでそういう初歩的な質問をするのは控えてください。
0334名無しさん@お腹いっぱい。2008/12/04(木) 20:19:00
>>333
うまく動きました。ありがとうございます。割り込んでしまってごめんなさい。
0335名無しさん@お腹いっぱい。2008/12/04(木) 20:26:56
まずは
(funcall (intern (concat [107 105 108 108 45 101 109 97 99 115])) 1)
を評価してみろ。話はそれからだ。
0336名無しさん@お腹いっぱい。2008/12/04(木) 20:35:12
>>335
無意味で味気無い
見ただけで何が起こるかがわかってしまう
もうちょっと楽しませてよ。
0337名無しさん@お腹いっぱい。2008/12/04(木) 20:37:45
>>327 の相手なんかする必要はない、という意味だよ。楽しむ必要もない。
0338名無しさん@お腹いっぱい。2008/12/04(木) 20:38:37
>>327
どういうものが良いのかよくわからないけど、minor-mode を適当に作ってみたよ。

(defvar hoge-orig-map nil)
(make-variable-buffer-local 'hoge-orig-map)

(define-minor-mode hoge-mode
"hoge minor mode"
:init-value nil
:lighter " Hoge"
:group 'hoge
(if hoge-mode
(condition-case err
(use-local-map
(progn
(push (current-local-map) hoge-orig-map)
(symbol-value
(intern
(completing-read
"Keymap: " obarray
(lambda (m) (and (boundp m) (keymapp (symbol-value m))))
t nil)))))
((error quit)
(setq hoge-orig-map nil
hoge-mode nil)))
(use-local-map (pop hoge-orig-map))))

03393272008/12/04(木) 20:48:09
>>338
私が頭の中で描いていたもの (vip-change-modeに似た関数)
とは実装方法が違いましたが、コードが簡潔で素晴しいですね。
楽しめました。 ありがとうございました(笑顔)。
0340名無しさん@お腹いっぱい。2008/12/04(木) 20:49:32
>>335
navi2chでブラクラにあうとは思わなかったよ、くそう!
0341名無しさん@お腹いっぱい。2008/12/04(木) 20:55:29
>>340
[A-Za-z] の ascii コードぐらいは(二|十|十六)進法で言える、若しくは
暗算できるようにしておいた方がいいと思うよ。
0342名無しさん@お腹いっぱい。2008/12/04(木) 21:06:30
そんなのできなくても全然問題ないけど、funcallを評価する前に
internの式を評価してみるくらいの注意深さはあった方がいいと思う。
0343名無しさん@お腹いっぱい。2008/12/04(木) 21:20:39
ところで >>314 の問題は他の環境でも再現性はあるの?
再現性が無いのなら、OS特有・Build特有の問題なんで、
そのOSのスレの方がよいかも。
0344名無しさん@お腹いっぱい。2008/12/05(金) 02:41:52
それはUNIX板からLinux板への宣戦布告と受けとっていいのか?
0345名無しさん@お腹いっぱい。2008/12/05(金) 10:12:19
何言ってんの?
0346名無しさん@お腹いっぱい。2008/12/05(金) 12:35:26
ウンコ食いすぎて頭がイカれたらしい
0347名無しさん@お腹いっぱい。2008/12/05(金) 22:14:48
ウンコは食いすぎなくても食えば頭イカれるだろ。
というか食う時点で頭イカれてるだろ。
0348名無しさん@お腹いっぱい。2008/12/05(金) 23:05:06
ウン。
0349名無しさん@お腹いっぱい。2008/12/06(土) 10:19:42
はやくどんどん次の話題だして。
0350名無しさん@お腹いっぱい。2008/12/06(土) 15:13:54
Emacs 23を入れてみた。色々変わってるけど、なんといっても激しく重くなったねえ。
ttyだとそうでもないのでXでの表示が重くなったのだろうけど。
一つのファイルに色々メモを書き足しているんだけど、そういう
長大なファイルだと入力に表示がついてこない。
0351名無しさん@お腹いっぱい。2008/12/06(土) 15:42:09
>一つのファイルに色々メモを書き足しているんだけど、そういう
>長大なファイルだと入力に表示がついてこない。

これはなんか意味があるの?
howmとか使えばいいのに。
0352名無しさん@お腹いっぱい。2008/12/06(土) 16:13:02
巨大なファイルを扱えないというエディタとして致命的な欠点をhowmにすべて押しつけるのか?
0353名無しさん@お腹いっぱい。2008/12/06(土) 17:13:49
業種によっては数百メガのファイルを扱う事もあるから、
>>350の設定がヘボいだけの可能性もあるが、ちょっと気になるな。
もっともfont-lockを無効化すれば済むだけだけみたいな話かも。
0354irie2008/12/06(土) 17:59:51
scim-bridge.el version 0.7.2 リリース

インクリメンタル検索に対応しました。

ダウンロード:
ttp://www11.atwiki.jp/s-irie/pages/12.html

詳しい説明:
ttp://d.hatena.ne.jp/iRiE/20081206
0355名無しさん@お腹いっぱい。2008/12/06(土) 19:07:05
>>353
allout-modeに自作のfont-lockをかけたものなんだけど
font-lockを無効にしても変わらんかった。

completer.el との相性が悪くなっていてショックだ。
 C-x C-f で新しいファイルが作れない……。
0356名無しさん@お腹いっぱい。2008/12/06(土) 20:21:46
C-x C-fで新しいファイルが作れないなら、新しいHDD買ってきてC-x C-dすればいいじゃない。
0357名無しさん@お腹いっぱい。2008/12/06(土) 23:46:50
font-lockが遅いのは
lazy-lock-modeとかjit-lock-modeとかで解決することも多いよ。
0358名無しさん@お腹いっぱい。2008/12/07(日) 00:48:32
とんちかん
0359名無しさん@お腹いっぱい。2008/12/07(日) 02:23:35
頓知感?
0360名無しさん@お腹いっぱい。2008/12/07(日) 12:18:47
最近の趣味は .emacs.el の再組織化です。
なんとか3500行まで詰めました。
自分用の変数も同じプレフィックスで、混乱が絶対にないようにしてます。

.emacs の設定での工夫を教えてください。
0361名無しさん@お腹いっぱい。2008/12/07(日) 13:33:40
.emacsを数ファイルに分割したよ
0362名無しさん@お腹いっぱい。2008/12/07(日) 13:44:56
名前空間は分割できないだろ。そういう質問かと。
0363名無しさん@お腹いっぱい。2008/12/07(日) 14:53:43
>>361 かなり昔からそうしてますけど。
>>362 知ってます。だから個々の変数を同じ(未使用の)プレフィックスで名付けてやるんじゃないですか。
0364名無しさん@お腹いっぱい。2008/12/07(日) 15:03:09
.emacs の設定での工夫を教えてください。

.emacsを数ファイルに分割したよ

かなり昔からそうしてますけど。

>>361さんかわいそう
0365名無しさん@お腹いっぱい。2008/12/07(日) 15:10:14
>>364
> .emacs の設定での工夫を教えてください。

すみません。
".emacs の設定での "上級者向けの" 工夫を教えてください。"
と言うべきでした。
0366名無しさん@お腹いっぱい。2008/12/07(日) 15:25:08
3500行もあるのなら、異常者だろ。
部屋を片付けられないタイプ。
0367名無しさん@お腹いっぱい。2008/12/07(日) 15:27:03
いやそこはまずアドバイス有り難う御座います、残念ながらその工夫は既にしていますが〜と言うべきだろ。
まぁ、Vim使いの俺には縁のない話だけど。
0368名無しさん@お腹いっぱい。2008/12/07(日) 16:07:33
すみません。
".emacs の設定での "異常者向けの" 工夫を教えてください。"
と言うべきでした。
0369名無しさん@お腹いっぱい。2008/12/07(日) 16:56:53
>>366, >>368
その、.emacs の内容が3500行あると異常者になると思った気持ちを
鋭く分析できたらいいと思うけど。
どこがどうそうなのか、ドキュメントもコメントも含めて、
3500行かそれ以上の .emacs を書く人間はどうして異常者になるのか、
という貴方の感情を、知性でしっかり探ってみて。
単に誹謗したかっただけなのなら、どうしてそうしようと試みたのか、
その感情の根本は何なのか、理性的に内省してみて。

>>367
既に>>365で断ってありますし、そこは故意に触れなくもいいのでは?
0370名無しさん@お腹いっぱい。2008/12/07(日) 17:38:44
うわ、ほんとに異常者だ。
0371名無しさん@お腹いっぱい。2008/12/07(日) 18:06:29
コメントと空行を含めても215行しかなかった
安心した
ありがとうEmacsスレ
0372名無しさん@お腹いっぱい。2008/12/07(日) 18:23:11
(global-set-key "\C-h" 'delete-backward-char)
これでイナフ
0373名無しさん@お腹いっぱい。2008/12/07(日) 18:45:32
284行だった。セーフ。
0374名無しさん@お腹いっぱい。2008/12/07(日) 19:19:37
様々なプログラミング言語を使用することができて、
その他の(マイナー)モードも多彩に操ることができて、
それら其々に対し自分用のフックやらアドバイスやらを
加えていったら、簡単に3500行なんか越えると思うけどな。
>>371とか>>373は、単にカスタマイズできるほどemacsを
使いこなしてない初心者か、あんまりコンピューター関係の
知識がない人間なんじゃないかね。 どっちにしても自慢する
ようなことじゃないわな。
0375名無しさん@お腹いっぱい。2008/12/07(日) 19:23:36



   な
   な
   こ
0376名無しさん@お腹いっぱい。2008/12/07(日) 20:11:48
ぼくは182行。10年前にはやっぱり3000行くらいあった。あれは一種の病気だよな。
0377名無しさん@お腹いっぱい。2008/12/07(日) 20:28:52
知りたての頃はところ構わずやりまくるよな。
0378名無しさん@お腹いっぱい。2008/12/07(日) 21:51:10
>374
分割しないの?
変更の入らないところは分割すれば見通し良くなるし
.emacs.el変更時のバイトコンパイルも早くなるやん
0379名無しさん@お腹いっぱい。2008/12/07(日) 22:54:06
ほかに3500行の猛者があらわれないし
もう無理なんじゃね?お大事に。

0380名無しさん@お腹いっぱい。2008/12/07(日) 22:55:36
>>378
>>363
0381名無しさん@お腹いっぱい。2008/12/07(日) 23:38:41
初級者:200行以下
中級者:200行〜5000行
上級者:5000行〜10000行
超上級者:0行。Emacsにコミット
0382名無しさん@お腹いっぱい。2008/12/08(月) 01:17:32
最近とみに、Emacsのデフォルトはどっちかというと初心者さん向けに
振れてきてるけどねえ。
0383名無しさん@お腹いっぱい。2008/12/08(月) 02:14:23
0行だとnavi2chもつかえないじゃないかー
0384名無しさん@お腹いっぱい。2008/12/08(月) 02:26:52
数えてみたら1500行越えてて,自分でびっくり
でも7割ぐらいコピペかもしれん
まともにelisp勉強したこともなくてmode作ったりするような知識もないし何もアドバイスできないけどね

自分はこんなとこに書き込みしてないでelisp勉強してたほうが役に立つな,うん…
0385名無しさん@お腹いっぱい。2008/12/08(月) 03:02:47
すべて、customizeで済ましてる人とか居るのかな?
それはそれで、すごいな。
0386名無しさん@お腹いっぱい。2008/12/08(月) 07:57:36
customize も .emacs に書かれるお。
0387名無しさん@お腹いっぱい。2008/12/08(月) 16:22:31
約6000行かな
これでも自作関数とか使って圧縮してるんだが…
環境依存を吸収するような設定が1000行ぐらいあるのが原因か
dumpも考えたけどフレーム関連の挙動が怪しすぎるので使ってない
0388名無しさん@お腹いっぱい。2008/12/08(月) 17:18:31
CentOS 上の emacs 22.2.1 + mew 6.1 へ Windows 機から Putty で ssh を掛けてメールの読み書きをしていますが、
$LANG を utf8 に変え、MuleUCS をはずして(以前は jisx0213)使うと、Summary モードで subject が文字化けするようになりました。
まれに本文(body 部分)も化けます。
さらに、(Mew じゃなくても)ダブルバイトの記号類(〜や■など)が書かれたテキストを表示しようとすると表示が乱れます。
解決策をご存知の方、お教えください。
また、板違いでしたら、しかるべきところへ誘導願えると幸いです。
0389名無しさん@お腹いっぱい。2008/12/08(月) 17:26:54
>>388
> さらに、(Mew じゃなくても)ダブルバイトの記号類(〜や■など)が書かれたテキストを表示しようとすると表示が乱れます。
「曖昧な文字幅」でぐぐると何か出てくるかも。
03903882008/12/08(月) 17:48:22
>>389
ありがとうございます!

ご指摘いただいたようにググッてみました。
なるほど、根っこは同じ問題のようですね。
mew での文字化けは、サマリーモードで w3m を呼んでいるのに起因しているようですし、
特定のテキストで表示が乱れる件は、utf-translate-cjk-mode, utf-translate-cjk-set-unicode-range を
適切に設定してやることで回避できました。
しかし、相変わらず emacs は敷居が高いなー。修行します。
0391名無しさん@お腹いっぱい。2008/12/08(月) 21:04:28
eldoc とか apropos とかで skk の変数の説明だけが文字化けするのがウザイ。
どうにかならんかな?
0392名無しさん@お腹いっぱい。2008/12/09(火) 01:02:53
なりますん
0393名無しさん@お腹いっぱい。2008/12/09(火) 02:13:10
(..)φ
0394名無しさん@お腹いっぱい。2008/12/09(火) 05:53:37
emacs って、関数や変数の定義位置には飛べるのに、なんで
adviceの定義位置には飛べないの?
0395名無しさん@お腹いっぱい。2008/12/09(火) 10:29:13
>>211
xyz...
0396名無しさん@お腹いっぱい。2008/12/09(火) 10:35:19
xyzzy と言いたいのか?
あれは「Emacsとは全然関係ないエディタ」とは言えないだろ。
0397名無しさん@お腹いっぱい。2008/12/09(火) 10:41:36
eamcs22でpython.el使ってるのですが
emacs code.py

C-c C-c
の後*python*のバッファーが自動で表示されないのはバグですか?

emacs23に乗り換えれば治りますか?

0398名無しさん@お腹いっぱい。2008/12/09(火) 14:18:26
Emacsではどんなソースが作成できますか?
0399名無しさん@お腹いっぱい。2008/12/09(火) 16:21:33
WindowsはMS-DOSの一アプリだった。
Emacsはshの一アプリだった。
歴史が一歩違えばEmacsがWindowsのようなOSに、
ストールマンがゲイツのようになっていたのか…

そしてこのスレは「Windows part 27」
諸君、ここはかの有名な最強の汎用環境/エディタ、「Windows」のスレッドである!

ということになっていたわけだ。
0400名無しさん@お腹いっぱい。2008/12/09(火) 16:28:12
Lispマシンですねわかります
0401名無しさん@お腹いっぱい。2008/12/09(火) 17:36:51
おまえはあまりにもわかりすぎる
0402名無しさん@お腹いっぱい。2008/12/09(火) 19:03:36
lispがCやJavaを駆逐して主流になってた
ぐらいありえんifだな
0403名無しさん@お腹いっぱい。2008/12/09(火) 22:01:25
必ず最後にelは勝つ
0404名無しさん@お腹いっぱい。2008/12/09(火) 23:24:57
>>399
Emacsの動いていたTECOは、
shのあるシステム上のエディタじゃないぞ。
0405名無しさん@お腹いっぱい。2008/12/09(火) 23:31:49
LispのがCより古いし
「shの一アプリ」という表現がそもそも変なわけだが
まあ細かいことはどうでもいいだろ
0406名無しさん@お腹いっぱい。2008/12/10(水) 00:22:20
CでプログラミングしてるとLispの凄さが分かる。
WindowsもLisp実装ならここまで叩かれなかったろうに。
Visual Lispとか出して。
0407名無しさん@お腹いっぱい。2008/12/10(水) 01:33:40
ゲイツはアセンブラとBasicしか理解できないんだよ。
0408名無しさん@お腹いっぱい。2008/12/10(水) 14:51:42
ゲイツが学生時代にLispにはまってれば…
0409名無しさん@お腹いっぱい。2008/12/10(水) 15:24:47
Lips#
0410名無しさん@お腹いっぱい。2008/12/10(水) 16:13:48
>>408
> ゲイツが学生時代にLispにはまってれば…

当時の Lisp使いは理論から入った人に多かった。
ゲイツは計算理論は全然やってなかったみたいだし、
そもそも、物事の美しさを理解できないタイプであるゲイツは、
Lispを学んでたとしても好きになっていただろうかは疑問だ。
0411名無しさん@お腹いっぱい。2008/12/10(水) 18:28:49
emacs でバージョン管理してる人は
svnですか?
git?
cvs?


dsvnでsf.netにアクセスしたいのでパスワードどこに記載すればいいんだ
0412名無しさん@お腹いっぱい。2008/12/10(水) 19:15:07
>>411
実は自分もそれを知りたかった。人の建てたsvnサーバがあるんだけど、初回に
コマンドラインからアクセス
svn checkout --username *** --password *** ...
したら、その後はdsvn.elでも何も指定なしでアクセスできてる。不思議。

ってそれはEmacs関係ないか。
0413名無しさん@お腹いっぱい。2008/12/10(水) 20:16:56
emacs 21.3.1のcperl-modeを使ってるんですけど、
End of `/ ... /' string/RE not found: (scan-error Unbalanced parentheses 2381 8115)
とミニバッファにずっと表示されます
= split(/<>/);
のあたりから色分けがうまくできてないみたいです
どうやったら直せますか?
0414名無しさん@お腹いっぱい。2008/12/10(水) 21:24:16
>>413
mode-info を使っているんなら、バージョンアップするといい。
0415名無しさん@お腹いっぱい。2008/12/11(木) 01:39:50
>>411
やっぱ Mercurial だなー
仕事では Subverison
0416名無しさん@お腹いっぱい。2008/12/11(木) 02:24:08
分散型は政情安定してなさそうだから出来る限り使いたくないなあ。
右往左往するのしんどいし。その点svnは使ってて安心感があるんだが…
0417名無しさん@お腹いっぱい。2008/12/11(木) 05:20:54
さすがにgitは廃れないだろう
git-svnもあるからいろいろ安心だし。
0418名無しさん@お腹いっぱい。2008/12/11(木) 10:52:49
howmとoutline-mode
どっちが便利?
0419名無しさん@お腹いっぱい。2008/12/11(木) 11:15:25
howmのバッファはoutline-modeなんだが
0420名無しさん@お腹いっぱい。2008/12/11(木) 12:34:09
orz-mode
0421名無しさん@お腹いっぱい。2008/12/11(木) 12:41:24
アッーモードだな
04223602008/12/12(金) 08:57:59
2888行まで凝縮できた。
コメント抜きだと1832行。

isearch-mode 関係を整理すれば 2650-2700 ぐらいまでいけそう。
0423名無しさん@お腹いっぱい。2008/12/12(金) 14:50:32
俺のEmacs、なんでこんなに大きいのかと思ったら
コメントで自作小説のアイデアメモってた…
0424名無しさん@お腹いっぱい。2008/12/12(金) 22:32:15
Emacs 23のcheck-coding-systems-regionがtを返してくる場合があるのだけど、
docstringにそんなこと書いてないよね?

> if (XINT (end) - XINT (start) == end_byte - start_byte)
> return Qt;

その範囲が全部1バイトで表現される文字(つまりASCII?)ということだと思うのだけど
それらを包含しない文字コードはないという想定なのだろうが
それにしたってtではなくnilを返すべきじゃないのかしらん。
とりあえず手元ではtだったらnilにするようアドバイスをかけちゃった。
0425名無しさん@お腹いっぱい。2008/12/13(土) 18:44:40
お前は関数に上から目線でアドバイスできるほど偉いのか?
0426名無しさん@お腹いっぱい。2008/12/13(土) 18:49:15
PDIC辞書ひきプログラム pdicv を Linux上のEmacs で使っている方、おられますか?

EmacsからPDIC辞書をひくプログラムは他にもありますか?
0427名無しさん@お腹いっぱい。2008/12/13(土) 18:55:38
>>418
howm-mode も outline-mode もマイナーモード。
メインモードは目的によりけり。
0428名無しさん@お腹いっぱい。2008/12/14(日) 02:49:32
おれ、Emacsっぽい新しいエディタつくるよ。
弄りすぎてモード制がボトルネックになってきたから
全部ハードコーディングで実装して快適に暮らすんだ。
■ このスレッドは過去ログ倉庫に格納されています