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 は世界を救う!
0570名無しさん@お腹いっぱい。
2008/12/21(日) 17:14:060571560
2008/12/21(日) 17:33:59アドバイスありがとう。
http://www.pqrs.org/tekezo/emacs/doc/keyjack-mode/index.html
を参考に
(setq my-keyjack-mode-map (make-sparse-keymap))
(mapcar (lambda (x)
(define-key my-keyjack-mode-map (car x) (cdr x))
(global-set-key (car x) (cdr x)))
'(("\C-\M-h" . windmove-left)
("\C-\M-k" . windmove-up)
("\C-\M-l" . windmove-right)
("\C-\M-j" . windmove-down)))
(easy-mmode-define-minor-mode my-keyjack-mode "Grab keys" t " Keyjack" my-keyjack-mode-map)
って記述したら無事動きました!
ただ、1行目のsetqをadd-hookにしたら
Symbol's value as variable is void: my-keyjack-mode-map
って怒られたのでsetqのままです。いいのかな?
0572名無しさん@お腹いっぱい。
2008/12/21(日) 17:37:55~mode-hook を setq で書き換えるのは良くないって話。
0574名無しさん@お腹いっぱい。
2008/12/21(日) 18:02:28(setq windmove-wrap-around t) でループ。
0575名無しさん@お腹いっぱい。
2008/12/21(日) 18:50:50じゃあ、howmのC-c ,, とかは使えなくなるのか。。
0576名無しさん@お腹いっぱい。
2008/12/21(日) 19:48:13himawaridemotsukattoke!wwwwwwwwwwwwww
0577名無しさん@お腹いっぱい。
2008/12/21(日) 20:43:070578名無しさん@お腹いっぱい。
2008/12/21(日) 21:32:24本当はそれがやりたかったんだけど、どう頑張っても今の環境じゃあ矢印キーのシグナルが送れないみたいで。。。
それで諦めました。
環境
ターミナルクライアント:Poderosa
サーバ:CentOS release 5.2 (Final)
Emacs:GNU Emacs 22.3.6
0579名無しさん@お腹いっぱい。
2008/12/21(日) 21:34:52(define-key function-key-map [(shift up)] .(以下略
0580名無しさん@お腹いっぱい。
2008/12/21(日) 22:00:36うーん、試しにこんな感じで書いてみたのですが、ダメでしたorz
(when (locate-library "windmove")
(define-key function-key-map [(shift up)] . windmove-up)
(define-key function-key-map [(shift down)] . windmove-down)
(define-key function-key-map [(shift left)] . windmove-left)
(define-key function-key-map [(shift right)] . windmove-right))
以前、こちら
http://noir.s7.xrea.com/archives/000143.html
の
>Shift + カーソルキーは、ターミナルが横取りしてしまので、
>何か他のキーで代用するしかないですね…。
>
>ちなみに、X/Qt ( http://xqt.sourceforge.jp/index.ja.html) で Emacs を動かすと、
>そのへんの問題はなくなります。
>ただ、こっちはこっちでいろいろとややこしい問題がありますが…。
>Posted by: noir123 on 2004年12月21日 23:07
を見て諦めたのですが。。。
0581名無しさん@お腹いっぱい。
2008/12/21(日) 22:06:26PoderosaのsshのX11 forwardingで利用すれば?
0582名無しさん@お腹いっぱい。
2008/12/21(日) 22:27:46うお、なんか興味津々だけど難しそうでなかなか踏み入れられてない領域の話が。。。
きっとX on WindowsにはCygwinとかASTECとかを使うんだよね?
ちょっと調べてみたらpoderosaではX11 forwarding出来そうにないからputtyでも別途使うんだろうなぁ
0583名無しさん@お腹いっぱい。
2008/12/21(日) 22:54:40IMEProxyとかえせかんなとかちょっと面倒。
0584名無しさん@お腹いっぱい。
2008/12/22(月) 00:59:10日本語もそれほどまともじゃねえ
アラビアもねえ ヘブライもねえ
キーバインド毎日ぐーるぐる
俺らこんなEmacs嫌だ〜 俺らこんなEmacs嫌だ〜
メモ帳使うだ〜 メモ帳使いながら
銭こあ貯めて WindowsでVS買うだ〜
0585名無しさん@お腹いっぱい。
2008/12/22(月) 11:27:48以下は Subversionクライアント dsvn.el の関数の一つです。サーバのロケー
ルがEUC-JPなので、自分で一行改変しました。これを、関数そのものの改変で
はなく、defadvice で解決することはできないでしょうか?
初歩的ですみませんが、どうかお願いします。
(defun svn-call-process (program buffer &rest args)
"Run svn and wait for it to finish.
Argument PROGRAM is the svn binary to run.
Argument BUFFER is the buffer in which to insert output.
Optional argument ARGS are the arguments to svn."
(let ((proc (apply 'start-process "svn" buffer program args)))
;; (set-process-coding-system proc 'utf-8) <- ココ
(set-process-coding-system proc 'euc-jp)
(set-process-filter proc 'svn-output-filter)
(while (eq (process-status proc) 'run)
(accept-process-output proc 5)
(sit-for 0))))
0586名無しさん@お腹いっぱい。
2008/12/22(月) 12:15:47.bashrc に
alias ls='ls -hF --show-control-chars --color=auto'
と書いてるんだけど、反映されないみたい。
0587名無しさん@お腹いっぱい。
2008/12/22(月) 12:32:54it is given as initial input (but this may be lost, due to a timing
error, if the shell discards input when it starts up).
The buffer is put in Shell mode, giving commands for sending input
and controlling the subjobs of the shell. See `shell-mode'.
See also the variable `shell-prompt-pattern'.
0588名無しさん@お腹いっぱい。
2008/12/22(月) 12:49:17.emacs_bash はもう設定してるんだけど...と書こうとして、shellモードのプ
ロンプトが
sh-3.2$
になってることに気づき驚愕。
.emacs_sh を用意したら解決。ありがとうございました。
つうか、shell-modeで使うシェルを設定する場所はどこですか?
bashに変えたい。
0589名無しさん@お腹いっぱい。
2008/12/22(月) 13:03:46(setq shell-file-name "/bin/bash")
お騒がせしました。
0590名無しさん@お腹いっぱい。
2008/12/22(月) 13:34:59微妙なポイントにあるから一筋縄じゃできそうにないな。
最悪、その修正後の関数を.emacsにでも書いておけばいいと思う。
Emacsの関数は上書き定義できるから。
0591名無しさん@お腹いっぱい。
2008/12/22(月) 16:01:37やっぱりそうですか...。ありがとうございました。
0592名無しさん@お腹いっぱい。
2008/12/23(火) 01:28:04そこで、 font-lock-defaults を以下のように設定し、
(setq font-lock-defaults '((xxx-font-lock-keywords) t nil))
xxx-font-lock-keywords に、
(add-to-list xxx-font-lock-keywords
'(xxx-font-lock-func))
とし、関数 xxx-font-lock-func 内で、
(add-text-properties'howm-edit beg end '(face font-lock-comment-face))
としています。
beg end の間が556文字を超えると、557文字以降は font-lock-comment-face にならないのですが、
原因について、こころあたりの方、どうかご教示お願いいたします。
0593名無しさん@お腹いっぱい。
2008/12/23(火) 02:07:16M-o M-o としてもダメかな?
0594592
2008/12/23(火) 02:19:01ありがとうございます。
face が変わらなかった部分で、 M-o M-o (font-lock-fontify-block) したところ、
設定通りの face になりました。
M-x font-lock-fontify-buffer をしても、face が変わらなかったのですが、
Info に書いてあるのとは異なり、 font-lock-fontify-block とは動作が違うようですね。
0595名無しさん@お腹いっぱい。
2008/12/23(火) 02:24:34文字数や行数が増えると、ある位置以降は変化しない部分がでてきます。
M-o M-o に前置引数をつけて C-u C-u C-u C-u C-u C-u M-o M-o くらいやれば、
たいていのバッファは期待通りの色がつくと思うよ。
0597sage
2008/12/23(火) 11:52:33C-.にcommandをバインドしたいのですが、
(global-set-key "\C-." 'command)
と書いてもバインドされません。
現在の使用バージョンは22.2.1です。
0598597
2008/12/23(火) 12:22:04-nw 以外では正常にバインドされました。
0599名無しさん@お腹いっぱい。
2008/12/23(火) 12:29:260600名無しさん@お腹いっぱい。
2008/12/23(火) 23:33:56顔写真とか。
0601名無しさん@お腹いっぱい。
2008/12/24(水) 00:12:20俺のまわりでもEmacs使いがぽつぽつ増えた。
0602名無しさん@お腹いっぱい。
2008/12/24(水) 00:33:13実際は nano が…、来んなぁ…。
0603名無しさん@お腹いっぱい。
2008/12/24(水) 05:13:07もしあるのであれば、どのようにすればその値を参照できますか?
0604名無しさん@お腹いっぱい。
2008/12/24(水) 06:40:510605名無しさん@お腹いっぱい。
2008/12/24(水) 08:32:06すみません、もしよければもうちょっと詳しく教えていただけませんか?
私の場合、 window-id のようなものを hash-table のキーとして
使用したいので、可変でないものが望まれるのですが。
0606名無しさん@お腹いっぱい。
2008/12/24(水) 08:35:58なんで「ようなもの」なの?
window-idそのものじゃだめなの?
0607名無しさん@お腹いっぱい。
2008/12/24(水) 08:48:37私の思い違いかもしれませんが、
個々の window に対して定義してあると思われる window-id の
アクセッサーが用意してないようなので、別の方法があるのかと思いました。
汚いですが、
(assoc 'window-id (cadadr (current-frame-configuration)))
でもwindow-idは取れますが、フレーム単位になってしまうので、
何か別の方法があると助かります。
0608名無しさん@お腹いっぱい。
2008/12/24(水) 10:38:59とりあえず、そのコードは
(frame-parameter nil 'window-id)
でもいいと思う
0609名無しさん@お腹いっぱい。
2008/12/24(水) 10:45:11あと多分それは期待してるものと違うんじゃない?
http://www.bookshelf.jp/texi/elisp-manual-20-2.5-jp/elisp_29.html#SEC436
> window-id
> フレームとして使うウィンドウシステムのウィンドウ番号。
Emacs で言う window を言ってるのか、 Emacs で言う frame (= ウィンドウシ
ステムで使われる window) を言ってるのかわかんね…
0610名無しさん@お腹いっぱい。
2008/12/24(水) 11:06:32自己解決しました。現時点だと window-configuration の中身は見れないらしいです。
仕方ないので、winner.elがやってるような特定の仕方を実装しました。
0611名無しさん@お腹いっぱい。
2008/12/24(水) 11:35:24は、print_object しか口が用意されてないのね。
0612名無しさん@お腹いっぱい。
2008/12/24(水) 11:43:09selected-windowの返り値をバッファー相対的なidと考えることもできますね。
それは気付きませんでした。ありがとうございました。
0613604
2008/12/24(水) 15:10:34(window-list)で返ってくるリストに入っているwindowオブジェクトは、
他のどのLispオブジェクトともeqにならないけど、
必要なものはそういうものとは違うの?
数値になっている必要がある?
必要なのが(frame-list)の方でもおんなじなんだけど。
0614名無しさん@お腹いっぱい。
2008/12/24(水) 23:45:08nconc と assoc 使いまくり作戦と fset を試してみたけどなんかしっくり来ない。
0615名無しさん@お腹いっぱい。
2008/12/25(木) 10:55:34おっしゃる通りで、今のところはwinner.elがそうしているように、
(window-list nil 0)を使用しています。
0616名無しさん@お腹いっぱい。
2008/12/26(金) 02:44:32フォンとの設定の仕方を誰かまとめてくっさい。
0617名無しさん@お腹いっぱい。
2008/12/26(金) 12:22:36highlight-completionとcycle-miniがうんともすんとも
しんどいのぉ
0618名無しさん@お腹いっぱい。
2008/12/27(土) 00:01:03いったい、Emacs 利用者数ってどれくらいなんだろうかね?
日本、世界それぞれで。
0619名無しさん@お腹いっぱい。
2008/12/27(土) 01:01:250620618
2008/12/27(土) 10:08:52それはアンリアルすぎる〜 www
単位に万が抜けてるでしょ!?
まぁ、なんとなく世界ではもっと多いような気がしないでもないが....
どっか、そういう統計がないものかね?
0621名無しさん@お腹いっぱい。
2008/12/27(土) 10:09:44うざい、どっか逝け。
0622名無しさん@お腹いっぱい。
2008/12/27(土) 11:10:51バッファは表示されないようにしたいのですが、どうすればいいですか?
0623名無しさん@お腹いっぱい。
2008/12/27(土) 14:41:59言わんとしているところが正確には分からんけど、
elscreen-kill-screen-and-buffersでどう?
0624名無しさん@お腹いっぱい。
2008/12/27(土) 15:52:47バッファは消したいけれど、タブ自体は残したいのではないかな
0625名無しさん@お腹いっぱい。
2008/12/27(土) 17:19:4010:09:44 - 10:08:52 = 00:00:52 !?
そんなあなたには、いますぐ、精神安定化のため M-x doctor をお勧めします...
0626名無しさん@お腹いっぱい。
2008/12/27(土) 19:00:580627名無しさん@お腹いっぱい。
2008/12/29(月) 17:51:54もうすぐアケオメだねみんな
げんきしてるの?
0628名無しさん@お腹いっぱい。
2008/12/29(月) 21:16:29みんなも Emacs の今年の収穫を教えてくれ!
0629名無しさん@お腹いっぱい。
2008/12/29(月) 21:33:24他人のをヘビーに改良したやつだな。
自作以外を強いて挙げるならば、vipper-mode、yasnippet、slime、dropdown-list ってとこかな。
0630名無しさん@お腹いっぱい。
2008/12/29(月) 21:45:550631名無しさん@お腹いっぱい。
2008/12/30(火) 00:47:12久しぶりにXEmacsに戻ったこと。
0632名無しさん@お腹いっぱい。
2008/12/30(火) 00:55:420633名無しさん@お腹いっぱい。
2008/12/30(火) 01:19:150634名無しさん@お腹いっぱい。
2008/12/30(火) 02:27:53あとは自作ものかな。
0635名無しさん@お腹いっぱい。
2008/12/30(火) 09:09:42もっと早くから使っていれば・・・!
0636名無しさん@お腹いっぱい。
2008/12/30(火) 10:56:130637名無しさん@お腹いっぱい。
2008/12/30(火) 12:03:190638名無しさん@お腹いっぱい。
2008/12/30(火) 12:15:160639名無しさん@お腹いっぱい。
2008/12/30(火) 12:25:010640名無しさん@お腹いっぱい。
2008/12/30(火) 15:41:270641名無しさん@お腹いっぱい。
2008/12/30(火) 22:12:320642名無しさん@お腹いっぱい。
2008/12/30(火) 22:37:110643名無しさん@お腹いっぱい。
2008/12/31(水) 00:21:23やっぱりEmacs使うようなヘビメタユーザーはC++に一番慣れてるからじゃね?
0644名無しさん@お腹いっぱい。
2008/12/31(水) 00:51:10Emacs自体はCで書かれていて、拡張はLisp方言のelispで書くのに…?
よくワカンネ
0645名無しさん@お腹いっぱい。
2008/12/31(水) 02:44:52C++の熟練者はCの熟練者でもあるからなあ。
実装上、Cのほうが効率が良ければC++で書けてもCで書くだろふつう。
あと、拡張がLisp系なのはGNU Emacs開発時にC++は生まれたてだったから。
当然処理系の実装も枯れておらず、情報もなければ標準も定まってなかった。
GNU Emacsの開発開始が1984, C++ Programming Languageの発行が1985。
0646名無しさん@お腹いっぱい。
2008/12/31(水) 02:54:590647名無しさん@お腹いっぱい。
2008/12/31(水) 03:22:39それよりも、Lisp部分をもっと汎用的にしてくれたほうがうれしい。
なんか関数型言語ブームみたいだし。
0648名無しさん@お腹いっぱい。
2008/12/31(水) 05:10:09> あと、拡張がLisp系なのはGNU Emacs開発時にC++は生まれたてだったから。
> あと、拡張がLisp系なのはGNU Emacs開発時にC++は生まれたてだったから。
0649名無しさん@お腹いっぱい。
2008/12/31(水) 09:24:03百歩譲ってJavaScriptなら理解できるが
なぜC++w
自分はまともなCSの教育を受けたことも無くC系言語しか知らないドカタPGなので
関数型言語は理解できないんですって素直に言ったらどうだ
わざわざ.emacsをC++で記述するつもりかよ?
0650名無しさん@お腹いっぱい。
2008/12/31(水) 11:15:240651名無しさん@お腹いっぱい。
2008/12/31(水) 15:18:31本人以外みんなわかってるんだからわざわざ指摘してやるなよw
0652名無しさん@お腹いっぱい。
2008/12/31(水) 16:03:16うわあ…
C++コンプまるだしやん。
関数型言語といえば納得してくれる素人ばっかだと思わんように。
0653名無しさん@お腹いっぱい。
2008/12/31(水) 16:04:25RMSに、EmacsをHaskellで書き直してって頼んで鼻で笑われてね。
0654名無しさん@お腹いっぱい。
2008/12/31(水) 16:10:55まぁ、 >>641 は明らかな釣りだけど、冬休みだからな…
0655名無しさん@お腹いっぱい。
2008/12/31(水) 16:15:310656名無しさん@お腹いっぱい。
2008/12/31(水) 16:18:37それは場合によると思う。
例えば、ちょっと設定を書き換えるとかならEmacs Lispで問題ないけど
大規模なEmacsアプリを作りたい場合とかで
C++のノウハウをもってるユーザーなら、C++で書きためた
アルゴリズムやらをそのまま使えたほうが能率的な場合もある。
コンソールからGUIアプリまで、広範囲な開発経験がある
プロ寄りのEmacsユーザーがC++を使いこなせると想定するのは自然だしね。
逆にそういう人で関数型言語しか使えないと想定するのは難しい。
それは単に実用アプリを作ったことがない象牙の塔の人。
だからEmacs Lisp, C++の二本立てて拡張ができるように進化していくべきだと思う。
0657名無しさん@お腹いっぱい。
2008/12/31(水) 16:27:080658名無しさん@お腹いっぱい。
2008/12/31(水) 16:31:17出来るならやればいいよ。
0659名無しさん@お腹いっぱい。
2008/12/31(水) 16:47:54釣りだと思うが、C++がLispの代わりになるとでも言わんばかりの
>>645の
> あと、拡張がLisp系なのはGNU Emacs開発時にC++は生まれたてだったから。
という面白発言に突っ込んだだけだぜ
コンパイルが必要で、リフレクションもイントロスペクションも実行時の
動的式評価手段(eval)も持たないC++が、エディタのマクロ
言語として、どうしてLispの代わりになれると思ってるんだって話な
FFIがあったらいいね、ぐらいの話なら俺は否定せんよ
ただし、C++はABIの問題を抱えているし、LispのGCとはメモリ管理ストラテジー等
インピーダンスアンマッチが多いので、色々面倒だろうと想像できるがな
0660名無しさん@お腹いっぱい。
2008/12/31(水) 17:05:56コンパイルは別に問題ないだろ。大規模アプリ用なんだし。
他の問題は、C++内部ならクラスライブラリ設計・データ構造の問題だし
C++-Emacs Lisp間であればインタプリタの実装の問題じゃん。
それらを疑似的に実現する方法はいくらでも考えられる。
C++の言語構造の問題ではない。
0661名無しさん@お腹いっぱい。
2008/12/31(水) 17:12:380662名無しさん@お腹いっぱい。
2008/12/31(水) 17:14:050663名無しさん@お腹いっぱい。
2008/12/31(水) 17:17:22いやだから、それは
> あと、拡張がLisp系なのはGNU Emacs開発時にC++は生まれたてだったから。
を肯定はできんだろw
EmacsLispで書かれるものが全部「大規模アプリ」だとでも思ってるのかw
FFIぐらいなら認めるといってるじゃないか
勝手にやればよい
もっとも、GCとS式とEmacsのATOMをベースにした非常に特殊な
C++コードを記述するんなら、
> C++のノウハウをもってるユーザーなら、C++で書きためた
> アルゴリズムやらをそのまま使えたほうが能率的な場合もある。
などという論は成り立たなくなるがな
再利用がしやすいといいたかったのだろうが、出来ないわけだ
0664名無しさん@お腹いっぱい。
2008/12/31(水) 17:18:450665名無しさん@お腹いっぱい。
2008/12/31(水) 17:27:040666名無しさん@お腹いっぱい。
2008/12/31(水) 17:34:56速度が欲しいのならlexical scopeを備えたlispとFFIがあれば十分
でもそういうのすら難しいのが現在のemacsの実装なんだよな残念ながら
0667名無しさん@お腹いっぱい。
2008/12/31(水) 17:48:520668名無しさん@お腹いっぱい。
2008/12/31(水) 17:49:39EmacsLisp sucksなんてのはどこでも言われてるんじゃないの
0669名無しさん@お腹いっぱい。
2008/12/31(水) 17:53:21レキシカルスコープがほしいなら lexical-let を使えばいいじゃないか?
なにが不満なんだね?
■ このスレッドは過去ログ倉庫に格納されています