Emacs part 27
■ このスレッドは過去ログ倉庫に格納されています
0001Zeno
2008/11/09(日) 08:48:02スレッドルールは以下の通り:
* 初心者にやさしく接すること
* 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 は世界を救う!
0231名無しさん@お腹いっぱい。
2008/11/23(日) 23:22:03エディタの流儀に合わせた方が楽な場合も多いよ。
特に初心者のうちはなおさら。
0232名無しさん@お腹いっぱい。
2008/11/24(月) 00:15:160233名無しさん@お腹いっぱい。
2008/11/24(月) 00:19:03やっぱり、どうやってviper-modeが(-nwでも)escapeに
関数をマッピングしているのか、分かりませんでした。
誰かそれを実現できた人がいたら、どうやったか是非おしえてください。
0234名無しさん@お腹いっぱい。
2008/11/24(月) 00:38:04電源メーターが三日連続で下がり続けてる。
なんだこれ。
Emacsのパワーに家庭用コンセントがついてこれてないのか?
0235名無しさん@お腹いっぱい。
2008/11/24(月) 01:29:19とりあえず、viperからESC関連のとこを抜き出してみたよ。
------------------------------------------------------------------------------
(defvar viper-vi-intercept-map (make-sparse-keymap))
(define-key viper-vi-intercept-map viper-ESC-key 'viper-intercept-ESC-key)
(defcustom viper-ESC-key (if (viper-window-display-p) [(escape)] "\e")
(defun viper-window-display-p ()
(and (viper-device-type) (not (memq (viper-device-type) '(tty stream pc)))))
(defsubst viper-device-type ()
(if (featurep 'xemacs)
(device-type (selected-device))
window-system))
------------------------------------------------------------------------------
ようするに、単にウィンドウシステムの環境かどうかで、[(escape)]と"\e"を
切り替えてるだけだな。
ただ、同じ事をglobal-set-keyでやるとうまく行かない。
globalじゃなくてkeymapを作ればうまく行くんじゃないの?試してないけど。
0236名無しさん@お腹いっぱい。
2008/11/24(月) 04:47:230237名無しさん@お腹いっぱい。
2008/11/24(月) 10:00:13いや、ひげぽんではない人かもしれないけど。
0238名無しさん@お腹いっぱい。
2008/11/24(月) 10:18:560239名無しさん@お腹いっぱい。
2008/11/24(月) 11:39:09> 前者に変換して受け取り、M-某として扱うという実装が行われてきた。
逆だ逆。
0240名無しさん@お腹いっぱい。
2008/11/24(月) 14:27:06だよなぁ… 最初に >>239 を読んで「アレ?」と思った…
ということは神速で ESC(Ctrl-[)-x って入力するとエスケープシーケンスと誤認させる
ことも可能?
0241名無しさん@お腹いっぱい。
2008/11/24(月) 22:12:44EmacsからOutputzへ投げるやつやばいね。中毒になったわw
0242名無しさん@お腹いっぱい。
2008/11/24(月) 22:47:28無職の人?
0243名無しさん@お腹いっぱい。
2008/11/24(月) 22:51:430244名無しさん@お腹いっぱい。
2008/11/25(火) 00:14:490245名無しさん@お腹いっぱい。
2008/11/25(火) 00:31:05それぐらい大切だという名言。
0246名無しさん@お腹いっぱい。
2008/11/25(火) 00:44:030247名無しさん@お腹いっぱい。
2008/11/25(火) 10:06:10住所とかの漏洩を気にしない。
0248名無しさん@お腹いっぱい。
2008/11/25(火) 11:31:100249名無しさん@お腹いっぱい。
2008/11/25(火) 11:43:53いなかったりするから、「いざとなったら引っ越せばいいし」とか思って
「ネットは実名で発言すべき」とか言っちゃってるんだよな。
0250名無しさん@お腹いっぱい。
2008/11/25(火) 11:50:060251名無しさん@お腹いっぱい。
2008/11/25(火) 13:20:24Tomcat開発て何だ。Apacheのcontributorか?
0252名無しさん@お腹いっぱい。
2008/11/25(火) 23:45:370253名無しさん@お腹いっぱい。
2008/11/26(水) 01:18:38.emacs が 2000 行超えてるけど、
Lisp は勉強したことない。
コピペばっか。
0254名無しさん@お腹いっぱい。
2008/11/26(水) 12:05:190255名無しさん@お腹いっぱい。
2008/11/26(水) 14:57:420256名無しさん@お腹いっぱい。
2008/11/26(水) 15:06:45その時に集中してマニュアルを読みましたね。それで自信がついてEmacsが好きになった。
0257名無しさん@お腹いっぱい。
2008/11/26(水) 16:07:340258名無しさん@お腹いっぱい。
2008/11/26(水) 16:40:240259名無しさん@お腹いっぱい。
2008/11/26(水) 16:47:00わかるわかる。
>>255
emacs だけで lisp を習得する価値があるから。
生涯の友だよ。
0260名無しさん@お腹いっぱい。
2008/11/26(水) 17:12:30あと関数合成とか部分適用とかも
0261名無しさん@お腹いっぱい。
2008/11/26(水) 17:20:11がんばってください!!
0262名無しさん@お腹いっぱい。
2008/11/26(水) 19:31:050263名無しさん@お腹いっぱい。
2008/11/26(水) 20:41:320264名無しさん@お腹いっぱい。
2008/11/26(水) 21:18:37いいですよ。
0265名無しさん@お腹いっぱい。
2008/11/26(水) 22:21:01(setq-default tab-width 4)
(setq default-tab-width 4)
この2つの違いって、どのへんで出てくるの?
0266名無しさん@お腹いっぱい。
2008/11/26(水) 23:32:14そうなってるのは何か歴史的な理由があるのかも。
古いEmacsにはsetq-defaultがなかったとか。
0267名無しさん@お腹いっぱい。
2008/11/26(水) 23:50:48しかもヘルプに使うなと書いてあったり。
0268名無しさん@お腹いっぱい。
2008/11/26(水) 23:52:38(LinuxはEmacsの一小節にすぎない)
0269名無しさん@お腹いっぱい。
2008/11/27(木) 00:06:520270名無しさん@お腹いっぱい。
2008/11/27(木) 00:21:16それまではvimを使い倒していたから、なおのことつらかった。
もうそれから5〜6年使っているが、今でも苦痛だwww
0271名無しさん@お腹いっぱい。
2008/11/27(木) 01:53:290272名無しさん@お腹いっぱい。
2008/11/27(木) 02:13:15default-tab-width がローカル変数になってる場合とか…
0273名無しさん@お腹いっぱい。
2008/11/27(木) 08:58:33key-chord.elとか入れるといいんじゃな?
http://www.emacswiki.org/cgi-bin/wiki/key-chord.el
0274名無しさん@お腹いっぱい。
2008/11/27(木) 11:42:53こっちの方がいいかも。
Meadowについて語ってくれなスレ 7
http://pc11.2ch.net/test/read.cgi/software/1172308922/
0275名無しさん@お腹いっぱい。
2008/11/27(木) 14:43:160276名無しさん@お腹いっぱい。
2008/11/27(木) 14:47:340277名無しさん@お腹いっぱい。
2008/11/27(木) 14:51:29ここは公共の場だからおならはあんまりしないで。
0278名無しさん@お腹いっぱい。
2008/11/27(木) 17:53:04小数点以下○桁でまるめるような関数は附属されていますか?
(- 2.2 0.9 0.4)
2.2 - 0.9 - 0.4 = 0.9000000000000001
小数点以下一桁が欲しいときは 10倍して、まるめて、10で割ればいいようですが、
もし Emacs にすでに同じような関数があるでしょうか?
0279名無しさん@お腹いっぱい。
2008/11/27(木) 21:57:170280名無しさん@お腹いっぱい。
2008/11/27(木) 21:57:26calc ってライブラリ、
さっき、はじめて知ったばかりなので、何の保証もありませぬ。
0281名無しさん@お腹いっぱい。
2008/11/28(金) 00:22:09標準関数組み合わせて自分で関数作ったほうがよさそうだが…
どうせ1行で済む内容だし。
0282名無しさん@お腹いっぱい。
2008/11/28(金) 01:17:08ぜんぜんスマートではないな。
0283名無しさん@お腹いっぱい。
2008/11/28(金) 02:34:210284278
2008/11/28(金) 03:00:16どうもありがとうございます
calc.el、初耳です
n次方程式とかも解けるんですね
>>279
(format "%0.1f" (- 2.2 0.9 0.4))
こうですか?
これだと、1 が欲しいときに誤差がでて 0.99999999999 になった時にダメじゃないかと思ったのですが
(format "%0.1f" 0.99999999999999)
=> 1.0
いけました
0285名無しさん@お腹いっぱい。
2008/11/28(金) 03:09:12必要な .el を全部読み込ませた上で dump させて使っていると、大昔に fj に投稿されて
いた気がする。
0286名無しさん@お腹いっぱい。
2008/11/28(金) 03:42:13昔は10倍くらいあったけど。
5%ほどcontribして後の85%は捨てた。
(contribしたけどあちらに捨てられたのが20%ほどw最多がmew)
10%だけ残した。
0287名無しさん@お腹いっぱい。
2008/11/28(金) 11:25:31オレも昔やって,同僚にひんしゅくかった
それ用の関数があったきがする
0288名無しさん@お腹いっぱい。
2008/11/28(金) 11:27:320289名無しさん@お腹いっぱい。
2008/11/29(土) 22:20:22秒まで表示してくれないために編集したファイルを保存しようとすると毎回
foo.html changed on disk; really edit the buffer? (y, n, r or C-h)
と表示される。これがかなりうっとうしいのでftpの場合に限り黙らせたいのですが
いい方法ないですか?
0290名無しさん@お腹いっぱい。
2008/11/30(日) 00:24:39なんとかなりませんか
0291名無しさん@お腹いっぱい。
2008/11/30(日) 01:03:45screenでいうと^axみたいなやつ
>>290
(setq inhibit-startup-message t)
0292名無しさん@お腹いっぱい。
2008/11/30(日) 13:31:11screen のパスワードロックの仕様は知らないが、
スクリーンロックできる関数を適当に作ってみたよ。
ちなみに、\C-g でも解除されないよ。
(defun my-screen-lock ()
(interactive)
(let ((passwd "passwd")
(inhibit-quit t))
(catch 'event
(while t
(zone)
(when (input-pending-p)
(discard-input))
(when (string= (read-passwd "passwd:") passwd)
(throw 'event t))
(setq quit-flag nil)))))
0293名無しさん@お腹いっぱい。
2008/11/30(日) 13:49:00編集内容が表示されたままではまずいかもしれないので
ダミーの空バッファを表示しておくのがいいのでは?
全てのフレーム全てのウィンドウでやらんといかんけど。
0294名無しさん@お腹いっぱい。
2008/11/30(日) 14:47:31せっかくなので、作り直してみた。
(defun my-screen-lock ()
(interactive)
(let ((passwd "passwd")
(inhibit-quit t)
(frame (selected-frame))
(frame-conf (current-frame-configuration)))
(save-selected-window
(unwind-protect
(let ((splash-buffer "*GNU Emacs*"))
(mapc
(lambda (x)
(select-frame-set-input-focus x)
(if (get-buffer splash-buffer)
(switch-to-buffer splash-buffer)
(fancy-startup-screen))
(delete-other-windows))
(frame-list))
(select-frame-set-input-focus frame)
(catch 'event
(while t
(zone)
(when (input-pending-p)
(discard-input))
(when (string= (read-passwd "passwd:") passwd)
(throw 'event t))
(setq quit-flag nil))))
(set-frame-configuration frame-conf)))))
0295名無しさん@お腹いっぱい。
2008/11/30(日) 15:09:28勉強になりました。ありがとうございます。
0296名無しさん@お腹いっぱい。
2008/11/30(日) 22:31:16defadvice の定義位置にはどうやって飛ぶの?
0297名無しさん@お腹いっぱい。
2008/11/30(日) 22:55:03片手でキーを打つだけでとか、マウスによる入力だけとかでプログラミングを
完全にできるようでないとダメなんではという議論があったけど、
その方向を目指している、あるいは実現できそうなプロジェクトなんかは
出てきているのでしょうか?
0298名無しさん@お腹いっぱい。
2008/12/01(月) 00:36:340299名無しさん@お腹いっぱい。
2008/12/01(月) 01:41:50まずはそのレベルの低い議論の出典から。
0300名無しさん@お腹いっぱい。
2008/12/01(月) 08:22:23(with-current-buffer buf
(insert (read-passwd "Password: "))))
このコードをemacs 23で評価すると、*temp*ではなくカレントバッファに
入力した結果が書き込まれてしまう。おかしくね? emacs 22ではそんなことにはならないのだが。
0301名無しさん@お腹いっぱい。
2008/12/01(月) 10:12:42http://usokosystem.com/?a=Maker&oo=>>297
0302名無しさん@お腹いっぱい。
2008/12/01(月) 14:11:56ぼくも3パートのまとめを大切に保管しているけど、
あれ以降、それについて言及した人を見たことが無い。
0303名無しさん@お腹いっぱい。
2008/12/01(月) 16:13:50with-current-bufferを使ってるなら何もしなければ*temp*がカレントバッファなはず
with-current-bufferは最初と最後にカレントバッファを切り換えるだけで
その中のformは単にカレントバッファに対する処理だから
もし途中何らかの操作で*temp*がカレントバッファじゃなくなってるなら
別におかしくはない。
0304名無しさん@お腹いっぱい。
2008/12/01(月) 16:28:53経緯は知らんけど、
ちゃんと議論したいならム板あたりに行った方がいいと思う。
0305名無しさん@お腹いっぱい。
2008/12/02(火) 01:03:56俺の正規表現が間違っているのか、-regexオプションが存在しないのか
判断できないっす。
emacs23です
0306名無しさん@お腹いっぱい。
2008/12/02(火) 03:45:03たぶん //
0307名無しさん@お腹いっぱい。
2008/12/02(火) 19:33:02Error: Variable binding depth exceeds max-specpdl-size
というエラーがでてしまうんですが、どうすれば消すことができますか?
(関数自体に問題はありません。)
0308名無しさん@お腹いっぱい。
2008/12/02(火) 20:17:590309名無しさん@お腹いっぱい。
2008/12/02(火) 20:35:40(setq max-specpdl-size a)
を評価する
あんまり大きすぎるとメモリ不足でemacsが落ちるかもしれんから気を付けてね
0310名無しさん@お腹いっぱい。
2008/12/02(火) 23:03:45お互い無事だったらまた落ち合おう。
0311名無しさん@お腹いっぱい。
2008/12/02(火) 23:21:151週間くらい前のではならなかった。昨日ビルドしたのではなった。
0312名無しさん@お腹いっぱい。
2008/12/03(水) 01:25:26表示できている人いる?intlfonts じゃダメなのかな。
チベット語関連とインド語関連の全文字表示は難しそうだ…。
0313名無しさん@お腹いっぱい。
2008/12/03(水) 07:49:14インド系は、Emacs23をlibotf, m17n ライブラリとリンクすればかなり綺麗に出る。
0314名無しさん@お腹いっぱい。
2008/12/03(水) 22:41:09UTF-8 環境での、X上の Emacs (22.3.2) と、端末エミュレータ mlterm の間の
コピー and ペースト について。
OSは Momonga Linux 5 ですが、まあ Fedora9 に近い環境だとお考え下さい。
mlterm (2.9.4) でトランプのダイヤモンド記号(黒) (UTF-8) をコピーし、X上の
emacs (22.3.2) にペーストすると、JISX0213という扱いになってしまいます。
emacsで M-x describe-char してみると、本来は
character: ? (299494, #o1110746, #x491e6, U+2666)
charset: mule-unicode-2500-33ff (Unicode characters of the range U+2500..U+33FF.)
となって欲しい所が
character: ? (135996, #o411474, #x2133c)
charset: japanese-jisx0213-1 (JISX0213 Plane 1 (Japanese))
となってしまいます。
(1) emacs を -nw で立ち上げれば、このような変換は起きません。
(2) mltermの代りにコピー元を xterm や urxvt にすれば、このような変換は起きません。
(3) mlterm の設定で receive_string_via_ucs を true にしても false にしても解消されません。
(4) emacs に Mule-UCSを導入しようがしまいが、解消されません。
(5) emacs を 23 にすれば、このような変換は起きません。
他の elisp パッケージとの関係上まだ Emacs-23 には移行できません。
このようなコード変換をやっている犯人は誰なのでしょう。
0315名無しさん@お腹いっぱい。
2008/12/04(木) 00:01:440316名無しさん@お腹いっぱい。
2008/12/04(木) 00:32:41つ xsel
0317名無しさん@お腹いっぱい。
2008/12/04(木) 00:51:08ある関数をデバッグしていて、その関数の中でコールされている関数に
ステップインするようなことはできない?
たとえばfind-fileをデバッグしていて、
find-file-noselectを実行するところでステップインする感じ。
今は毎回describe-functionとかで定義位置にジャンプして C-u C-M-x して
そのあとに g しているんだど、もちょっと手軽にできないものかと。
0318名無しさん@お腹いっぱい。
2008/12/04(木) 02:54:45>>316
mltermの場合と urxvtの場合を比較しましたが、selectされた内容に差はありませんでした。
しかし emacs にペーストすると、違いが生じます。謎です。
>>315
どうも x-get-selection は2度呼ばれるようなのです。そして1度目は mlterm の場合と
urxvtの場合に違いは無いのですが、2度目の挙動が異なります。以下に *message* バッファ
の内容を貼ってみます。
0319名無しさん@お腹いっぱい。
2008/12/04(木) 02:57:18# x-get-selectの1回目のcall
Result: PRIMARY [2 times]
Result: UTF8_STRING [2 times]
Result: #("\342\231\246" 0 3 (foreign-selection UTF8_STRING)) [2 times]
Result: t
Result: #("\342\231\246" 0 3 (foreign-selection UTF8_STRING))
Result: UTF8_STRING [4 times]
Result: t
Result: utf-8
Result: #("\342\231\246" 0 3 (foreign-selection UTF8_STRING))
Result: utf-8
Result: "?" [3 times]
Result: 1 (#o1, #x1, ?\C-a)
Result: UTF8_STRING
Result: "?"
Result: nil [2 times]
Result: #("?" 0 1 (foreign-selection UTF8_STRING)) [2 times]
0320名無しさん@お腹いっぱい。
2008/12/04(木) 03:02:54# x-get-selectの2回目のcall。^[ と ◆ は 本物ではない。
Result: PRIMARY [2 times]
Result: COMPOUND_TEXT [2 times]
Result: #("^[$(O&<" 0 6 (foreign-selection COMPOUND_TEXT)) [2 times]
Result: t
Result: #("^[$(O&<" 0 6 (foreign-selection COMPOUND_TEXT))
Result: COMPOUND_TEXT [4 times]
Result: nil [2 times]
Result: compound-text-with-extensions [3 times]
Result: #("^[$(O&<" 0 6 (foreign-selection COMPOUND_TEXT))
Result: compound-text-with-extensions
Result: "◆" [3 times]
Result: 1 (#o1, #x1, ?\C-a)
Result: COMPOUND_TEXT
Result: "◆"
Result: nil [2 times]
Result: #("◆" 0 1 (foreign-selection COMPOUND_TEXT)) [2 times]
0321名無しさん@お腹いっぱい。
2008/12/04(木) 03:07:11# x-get-selectの2回目のcall。^[ は 本物ではない。
Result: PRIMARY [2 times]
Result: COMPOUND_TEXT [2 times]
Result: #("^[%G\342\231\246^[%@" 0 9 (foreign-selection COMPOUND_TEXT)) [2 times]
Result: t
Result: #("^[%G\342\231\246^[%@" 0 9 (foreign-selection COMPOUND_TEXT))
Result: COMPOUND_TEXT [4 times]
Result: nil [2 times]
Result: compound-text-with-extensions [3 times]
Result: #("^[%G\342\231\246^[%@" 0 9 (foreign-selection COMPOUND_TEXT))
Result: compound-text-with-extensions
Result: "?" [3 times]
Result: 1 (#o1, #x1, ?\C-a)
Result: COMPOUND_TEXT
Result: "?"
Result: nil [2 times]
Result: #("?" 0 1 (foreign-selection COMPOUND_TEXT)) [2 times]
0322名無しさん@お腹いっぱい。
2008/12/04(木) 03:15:08途中の関数が書いてないのでわかりにくいですね。ここに貼るならedebug よりも
普通のデバッガの方がよかったかな。
0323名無しさん@お腹いっぱい。
2008/12/04(木) 03:56:29その関数を呼んでいるフォームのカッコの位置で i (edebug-step-in) じゃない?
(find-file-noselect ...
^
ふだん edebug は使ってないので、どうやって解除するかしばらくわからなかった…。
0324名無しさん@お腹いっぱい。
2008/12/04(木) 13:05:33>どうも x-get-selection は2度呼ばれるようなのです。
これを呼んでいるのは term/x-win.el 内の x-selection-value という関数でした。
これを Emacs-23 のものに差し替えたら、文字化けしなくなりました。
しかし差し替えで不具合が出ても困るので、もう少し読んでみます。
0325名無しさん@お腹いっぱい。
2008/12/04(木) 13:32:39GTK+なのか、X toolkitなのか。
0326名無しさん@お腹いっぱい。
2008/12/04(木) 13:53:34GNU Emacs 22.3.2 (i686-momonga-linux-gnu, GTK+ Version 2.12.12) of 2008-09-24 on miyako.momonga-linux.org
となっています。
0327名無しさん@お腹いっぱい。
2008/12/04(木) 14:44:51何らかの処理をした後に、元の keymap に戻すコードを書いてください。
0328名無しさん@お腹いっぱい。
2008/12/04(木) 15:19:43予算は?
0329名無しさん@お腹いっぱい。
2008/12/04(木) 15:32:55グダグダ言わずに早く書いてくれませんかね?
ヒント:
(copy-keymap foo)
(use-local-map foo)
(make-sparse-keymap)
上の関数を使えば比較的容易にできると思います。
0330名無しさん@お腹いっぱい。
2008/12/04(木) 15:51:52の差し替えは本質的解決ではありませんね。さて 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 での
結果を比較してからどちらの文字列として扱うべきかを決定しているようです。
■ このスレッドは過去ログ倉庫に格納されています