トップページunix
990コメント300KB

Emacs Part 39

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2011/11/29(火) 17:50:44.24
前スレ

Emacs Part 38
http://hibari.2ch.net/test/read.cgi/unix/1308635178/
0622名無しさん@お腹いっぱい。2012/01/08(日) 22:42:25.03
>>621
後者は既出感が…
0623名無しさん@お腹いっぱい。2012/01/08(日) 22:44:19.10
ちゃんとJavaScript 解釈してかつ elisp からブラウザの状態弄れるのがいいなあ
0624名無しさん@お腹いっぱい。2012/01/08(日) 22:48:48.36
なんか面白い elisp ないかしらん
0625名無しさん@お腹いっぱい。2012/01/09(月) 01:29:57.86
>>624
seimei.el
tako.el
trr.el
0626名無しさん@お腹いっぱい。2012/01/09(月) 01:43:55.29
なんであれだけ発行部数出てないんだろうねぇ。
0627名無しさん@お腹いっぱい。2012/01/09(月) 02:55:49.39
>>621
Javascript PC Emulator
ttp://bellard.org/jslinux/

で、ブラウザ上でQEmacsが使えます。

~ # which emacs
/usr/bin/emacs

~ # ls -l /usr/bin/emacs
lrwxrwxrwx 1 root root 2 May 14 2011 /usr/bin/emacs -> qe

~ # ls -l /usr/bin/qe
-rwxr-xr-x 1 root root 108240 May 16 2011 /usr/bin/qe

~ # strings /usr/bin/emacs | fgrep -i version
QEmacs version 0.3.1, Copyright (c) 2000-2003 Fabrice Bellard
0628名無しさん@お腹いっぱい。2012/01/09(月) 03:17:21.81


【スタッフ募集】路線名を擬人化させたエロゲ【鉄オタも】
http://hayabusa.2ch.net/test/read.cgi/news4vip/1326032146/

【wiki】
http://www38.atwiki.jp/train_erog/

【避難所】
http://jbbs.livedoor.jp/game/54004/
0629名無しさん@お腹いっぱい。2012/01/09(月) 08:39:46.95
>>625
tako.el みて普通に日本語のシンボル名作れることに驚愕した
0630名無しさん@お腹いっぱい。2012/01/09(月) 12:53:58.93
関数の中で直接呼び出されている関数*だけ*置き換える方法ってありませんでしょうか?

(defun greeting (msg who) (message "%s, %s" msg who))
(defun hello (who) (message "===hello===") (greeting "hello" who))

みたいになっている時、 hello の中で直接呼ばれてる message だけ置き換えたいのです。
flet を使うと greeting の中の message まで置き換えられてしまいます。

関数定義をそのまま引っ張ってきて書き換えたものを再定義したり fset したりする以外に方法はありませんでしょうか?
0631名無しさん@お腹いっぱい。2012/01/09(月) 12:58:14.67
関数を around アドバイスして flet ってやったらできないんだっけ?
0632名無しさん@お腹いっぱい。2012/01/09(月) 12:58:40.71
あ、馬鹿なこと言ったごめ。
0633名無しさん@お腹いっぱい。2012/01/09(月) 13:57:27.13
全然うまい方法が思いつかなかったので、じゃあせめて置き換え後の関数で
呼び出し元の関数を判断して挙動を変えようと思ったのですが、
今度は呼び出し元の関数の調べ方がわかりません。

http://b.hatena.ne.jp/IMAKADO/elisp/callee/ とかは見つかったんですが
肝心のリンク先が壊れて見れないという・・・トレースとか書いてあるから
バックトレースの内容を参照するってことなんでしょうかね・・難しい。
0634名無しさん@お腹いっぱい。2012/01/09(月) 14:42:51.45
なんかものすごく力技な感じになりましたが一応実装できたので貼っておきます。
なんかもっとスマートな方法はないのか・・・・

(defun greeting (msg who) (message "%s, %s" msg who))
(defun hello (who) (message "===hello===") (greeting "hello" who))

(defun callee ()
"呼び出し元の関数名を文字列で返す"
(let ((bt (split-string (with-output-to-string
(backtrace)) "^ *\\|\n" t)))
(while (and bt
(not (string-match "^callee\\>" (pop bt)))))
(cadr bt)))

(defadvice hello (around ad-hello-no-heading activate compile)
"hello が直で呼び出している message だけ ignore に置き換える"
(let ((org-message (symbol-function 'message)))
(flet ((message (format-string &rest args)
(if (string-match "^ad-Orig-hello\\>" (callee)) ;; advice の場合は ad-Orig-* になる
(ignore)
(apply org-message format-string args))))
ad-do-it)))
06355972012/01/09(月) 16:29:31.21
>>598-599 >>607
ありがとうございます。
indent-line-function等で制御するよりも>>607を改変すればよさそうだと思いました
ですが改変がうまくいきません

  if (x>0) {
    proc1()
    proc2()
  } else if (x<0) {
    proc3()
    proc4()
  } else {
    proc5()
    proc6()
  }

こういう風に自動的にインデントさせようとして
http://www.gnu.org/software/emacs/manual//html_node/elisp/SMIE-Grammar.html#SMIE-Grammar
の("then" insts "end")を("{" insts "}")、
("if" exp "then" inst "else" inst)を("if" exp inst "else" inst)、
(insts (insts ";" insts) (inst))を(insts (insts insts) (inst))、
に書き換えましたが、{を入力してC-jを押すと(newline-and-indent)
(wrong-type-argument integer-or-marker-p nil)
とエラーが出ました
このif (test) {procs} else if (test) {procs} else {procs} を
(procsは改行区切りです)
インデントさえできればいいのですが
どうすればよいでしょうか
06365972012/01/09(月) 16:39:18.77
あと、調べていて気づいたのですが
http://www.emacswiki.org/emacs/IndentingC#toc1
このcc modeをdefine-generic-modeで作成したモードで
使えればよさそうだと思いました
というのも整えようとしているのがc++ likeのコードに似ているからです
上のsmie改変がうまくいかないときにはこれで十分です

define-generic-modeで作成したモードの初期化部分で
このcc modeの機能を利用することはできるでしょうか
0637名無しさん@お腹いっぱい。2012/01/09(月) 16:39:19.97
ちなみにサンプルの設定ではうまく動いたの?

smieって何やってるのかわからなかったけど
smie-setup で indent-line-function 設定してるのな。
ちょっと真面目に使い方勉強してみるか。
0638名無しさん@お腹いっぱい。2012/01/09(月) 16:40:28.70
>>636
特定のモードを元にモードを作る場合は
define-derived-mode を使うといいよ。
0639名無しさん@お腹いっぱい。2012/01/09(月) 17:09:57.88
>>635
"}"とかが token として認識されてないんじゃないの?
06405972012/01/09(月) 17:50:59.31
>>637
はい。サンプルは動きました。↓の各セクションから以下の設定をコピペして
http://www.gnu.org/software/emacs/manual//html_node/elisp/SMIE.html#SMIE
(eval-when-compile (require 'cl))
(require 'smie)
(defvar sample-smie-grammar
(defvar sample-keywords-regexp
(defun sample-smie-forward-token ()
(defun sample-smie-backward-token ()
インデント分をこう設定し
(defvar sample-indent-basic 4)
メジャーモードを作成する (define-generic-mode の初期化部分で
(list (function (lambda () (add-hook 'hoge-mode-hook (lambda ()
(smie-setup sample-smie-grammar #'sample-smie-rules)
と書きました。
あと、>>635の(insts (insts ";" insts) (inst))は書き換えないままでした
書き換えるとエラーになります すみません

>>639
確かにtokenの設定が抜け落ちていました。ですが
(defvar sample-keywords-regexp
(regexp-opt '("+" "*" "," ";" ">" ">=" "<" "<=" ":=" "="))) を
(defvar sample-keywords-regexp
(regexp-opt '("+" "*" "," ";" ">" ">=" "<" "<=" ":=" "=" "{" "}" "(" ")")))
に書き換えましたがだめでした

>>638
なるほど、ただキーワードの色づけ設定は引き継ぎたくないのでdefine-gereric-modeで設定しました
インデントとキーフックのみ特定のモードを引き継ぐという機能があればいいのですが
0641名無しさん@お腹いっぱい。2012/01/09(月) 18:02:41.16
>>640
自分とこでちょっと動かしてみたいけど長そうだから
↓ここにコピペしてURL教えてくれ
http://paste.lisp.org/new/emacs
06425972012/01/09(月) 19:05:20.29
書きました
http://paste.lisp.org/display/126938
よろしくお願いします
0643名無しさん@お腹いっぱい。2012/01/09(月) 19:42:06.40
うおお、難しい
とりあえずコメントの ';' と 区切り文字の ';' が干渉してるのと
sample-smie-forward-token で a+b みたいなのが一気に通過しちゃうのが気になったけど
じっくり取り組まないとわからんなあ・・・
0644名無しさん@お腹いっぱい。2012/01/09(月) 21:32:24.24
サンプルのまんまで実行しても emacs 23 では wrong-type-argument が出るねえ。
emacs 24 で実行するとエラーは出ないけどちゃんと動いてるような感じがしない。
サンプルそのままで実行してもぶら下がりelseがちゃんと処理できてないように見えるなぁ。
0645名無しさん@お腹いっぱい。2012/01/10(火) 00:11:10.77
>>629
skk に含まれてる skk-ja-names.el とか見てみろよ。
こんなだぞ。

(defalias 'SKKモード 'skk-mode)
(defalias 'SKKのバージョン 'skk-version)
(defalias 'SKKのバグを報告する 'skk-submit-bug-report)
(defalias 'SKKのチュートリアル 'skk-tutorial)
0646名無しさん@お腹いっぱい。2012/01/10(火) 11:26:09.75
load-path の追加に normal-top-level-add-subdirs-to-load-path を使うのを
止めたら起動時間が 500〜700ms 近く早くなって感動した
0647名無しさん@お腹いっぱい。2012/01/10(火) 15:26:23.62
emacs使いの大半はcapslockをctrlにしている?
それともそのまま?
0648名無しさん@お腹いっぱい。2012/01/10(火) 15:30:40.42
そんなの調査のしようがないからなぁ。
0649名無しさん@お腹いっぱい。2012/01/10(火) 15:34:21.26
大半かどうかは知らんけどEmacs関係なく一定数いることは確か。
MSなんか公式でCTRL<=>CAPS逆にするドライバ配布してるし。

これも呪いの一つだとは思う。
0650名無しさん@お腹いっぱい。2012/01/10(火) 17:29:15.59
なんでこれでエラーがでるんでしょう?
(string-match (migemo-get-pattern "popw") "popwin")

ここまでは大丈夫なのに。
(string-match (migemo-get-pattern "pop") "popwin")

0651名無しさん@お腹いっぱい。2012/01/10(火) 17:37:09.14
失礼しやした。
キャッシュがぶっ壊れていただけだった。
0652名無しさん@お腹いっぱい。2012/01/10(火) 18:44:24.40
>>649
MSのドライバ配布なんて聞いたことがなかったから調べてみた
http://www.atmarkit.co.jp/fwin2k/win2ktips/1182ctrl2cap/ctrl2cap.html
ふむふむこれか。楽ちんなツールもあるもんだな
0653 忍法帖【Lv=34,xxxPT】 2012/01/10(火) 18:48:32.71
入れ替えじゃなくてcapslockをctrlにしたい
0654名無しさん@お腹いっぱい。2012/01/10(火) 19:51:36.16
職場なんかだと交換よりCAPS潰すの方が
ちょっと同僚が叩いた時とかに面倒がなくていいわ
0655名無しさん@お腹いっぱい。2012/01/11(水) 00:27:15.52
最新のソースを取得するにはどうすればいいんだ?
ttp://savannah.gnu.org/projects/emacs/
ここに書いてあるとおり
bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk
としても、メールで[Emacs-diffs]が届いた時点のソースが取得出来ない。
その後、bzr updateしても一向に更新されないし、bzrよーわからん。
そもそも、bzr branchが異様に時間が掛かるし、bzr腐ってる。
0656名無しさん@お腹いっぱい。2012/01/11(水) 00:32:21.68
github のミラー使ったら?
https://github.com/emacsmirror/emacs
>A Mirror of the Emacs Bazaar repository ― Read more
>http://www.emacswiki.org/emacs/EmacsFromGit
0657名無しさん@お腹いっぱい。2012/01/11(水) 01:05:13.24
gitのミラーはとまってることがまれにあるのが玉に瑕。
0658名無しさん@お腹いっぱい。2012/01/11(水) 08:32:51.99
git clone git://git.savannah.gnu.org/emacs.git
0659名無しさん@お腹いっぱい。2012/01/11(水) 10:21:02.18
ecbとかセマンティックは消滅しちゃうんだろうか
0660名無しさん@お腹いっぱい。2012/01/11(水) 12:14:29.24
23.4のtarballsまだかよ。
0661名無しさん@お腹いっぱい。2012/01/11(水) 12:40:39.01
カーソル移動は(previous-line)でできることは分かったのですが、
カーソル位置にある文字とその一つ前の文字を取得する関数はありますか?
取得した文字によって処理を分岐させたいのですが方法が分かりません
0662名無しさん@お腹いっぱい。2012/01/11(水) 12:56:44.81
\C-x =
が似たようなことをやっている。
0663名無しさん@お腹いっぱい。2012/01/11(水) 13:01:57.88
char-after char-before following-char preceding-char
0664名無しさん@お腹いっぱい。2012/01/11(水) 13:08:21.16
>>662-663
ありがとうございます
0665名無しさん@お腹いっぱい。2012/01/11(水) 13:49:11.90
>>659
いや、普通に残ってる。
w3 っていつの間に消えてたんだろう・・・
0666名無しさん@お腹いっぱい。2012/01/11(水) 16:05:23.89
*scratch*バッファをキルしたあとで,また*scratch*バッファを
開く方法無いですか?

やりたいことは,*scratch*バッファの内容を復元することではなく
メモ用のバッファを作ることなのですが・・・
0667名無しさん@お腹いっぱい。2012/01/11(水) 16:09:05.64
>>666
http://www.bookshelf.jp/soft/meadow_29.html#SEC392
とかを参考に。
0668名無しさん@お腹いっぱい。2012/01/11(水) 16:10:02.14
普通に C-x b で *scratch* を開けばいいよ。別に特別なバッファじゃない。
お好みで initial-major-mode にしてあるメジャーモードにすればいい。

scratch の内容保存系の lisp おいてるところよく見ると
消せないようにするだけの設定が抜き出せるからそれ参考にしてみれば?
0669名無しさん@お腹いっぱい。2012/01/11(水) 16:10:06.91
>>666
http://www.bookshelf.jp/soft/meadow_11.html#SEC75
つーかこっちか。
モード設定は勝手にやってくれるかも。
0670名無しさん@お腹いっぱい。2012/01/11(水) 16:36:53.69
>>667,668,669
しばらくC-x b *scratch* を使ってみることにします.
ありがとうございます.
0671名無しさん@お腹いっぱい。2012/01/11(水) 19:20:52.27
abbrevの登録単語削除の方法がサパーり判らんのでスゲームカムカしてきた
C-u C-x a l
0672名無しさん@お腹いっぱい。2012/01/11(水) 21:05:05.68
M-x list-abbrevs して適当に消して C-c C-c じゃない?
abbrev まともにつかったことないな・・・
0673名無しさん@お腹いっぱい。2012/01/11(水) 21:43:02.80
無名関数の再帰を調べていたら Y コンビネータが出てきた
あのわけわからん世界に繋がりつつあるんだと思うとちょっとうれしい
0674名無しさん@お腹いっぱい。2012/01/11(水) 21:56:17.64
文字列中の "$@"、または "$" をそれぞれスペース一個にする処理を書いています。
ただし、"$$" はエスケープ処理のパターンなので "$$@" なんて場合は "$$ " に置換したいです。
( "hoge$@$$@hage" なんかは "hoge $ hage"になる)

こういうエスケープ文字を含む置換は一回の置換で済ますのは難しいでしょうか?
0675名無しさん@お腹いっぱい。2012/01/11(水) 22:18:20.68
>>674
> ただし、"$$" はエスケープ処理のパターンなので "$$@" なんて場合は "$$ " に置換したいです。
だと
"hoge$@$$@hage" -> "hoge $$ hage"
にならないといけないような。

とりあえず
(replace-regexp-in-string "\\(\\$?\\)\\$@?" "\\1 " "hoge$@$$@hage")
-> "hoge $ hage"
となる。
0676名無しさん@お腹いっぱい。2012/01/11(水) 22:40:32.37
>>675
ああっ・・・すみません、"hoge$@$$@hage" は "hoge $$ hage" でした。

なるほど、直前の $ があれば保存するって書き方も出来るんですね。
もう少し考えてみます。ありがとうございます。
0677名無しさん@お腹いっぱい。2012/01/11(水) 22:44:05.81
>>676
下手糞だけれど、
(replace-regexp-in-string "\\(\\$?\\)\\$@?" "\\1\\1 " "hoge$@$$@hage")
0678名無しさん@お腹いっぱい。2012/01/11(水) 22:57:17.40
>>677
$$ の場合、前の$を2つおいちゃうわけですね
ただその場合 "hoge$$hage" が "hoge$$ hage" になってしまいます
ううむ・・・
0679名無しさん@お腹いっぱい。2012/01/12(木) 08:16:55.07
emacs24 のパッケージシステム、ELPAの登録少なすぎ糞がと思ってたけど
mamalade 追加したら予想してたよりしっかり登録されてて感心した。
0680名無しさん@お腹いっぱい。2012/01/12(木) 09:45:12.56
ELPA標準+marmaladeでel-getはオワコンか
0681名無しさん@お腹いっぱい。2012/01/12(木) 09:57:57.84
el-get + githubのemacsmirror
これ最強な
0682名無しさん@お腹いっぱい。2012/01/12(木) 10:00:49.74
emacsmirror いいよな。 emacswiki のelisp 落としたい放題
0683名無しさん@お腹いっぱい。2012/01/12(木) 10:23:06.46
そんなものよりるびきちさんのauto-installを使えよ
0684名無しさん@お腹いっぱい。2012/01/12(木) 11:34:39.88
emacsmirrorのレポジトリ群からel-get用レシピ生成するelispはよ
0685名無しさん@お腹いっぱい。2012/01/12(木) 18:37:38.11
emacs24のlexical-binding、ヘッダに lexical-binding: t とか入れると
全部の let が文脈依存になるのかよ・・・
使いづれえ
0686名無しさん@お腹いっぱい。2012/01/13(金) 07:43:15.33
scratch buffer で lexical どうやんのかな
0687名無しさん@お腹いっぱい。2012/01/13(金) 10:28:58.27
lexical-let を正式サポートでよかったのに。
0688名無しさん@お腹いっぱい。2012/01/13(金) 10:35:18.21
冗談はやめてくれ。
0689名無しさん@お腹いっぱい。2012/01/13(金) 10:41:53.08
*scratch* で M-: (setq lexical-binding t) でいいんじゃない?

;; 今まで
(setq a 100)
(defun foo () (message "%d" a))
(progn (let ((a 200)) (foo)) (foo))
=> 200 100

;; lex bind
(setq lexical-binding t)
(setq a 100)
(defun foo () (message "%d" a))
(progn (let ((a 200)) (foo)) (foo))
=> 100 100

ただし、a が defvar で宣言されている場合は lexical-binding を t にしてても強制的に
dynamical binding (ようするに今までのと同じ)になる。

だから基本的には置き換えしてもそんなに影響はでないはず。
0690名無しさん@お腹いっぱい。2012/01/13(金) 10:51:34.62
あと lexical-binding t にすると lambda が closure を返すようになるな。
バッファ内の未評価の defvar とかが評価結果に含まれててなんかすごく気持ち悪いけど。
0691名無しさん@お腹いっぱい。2012/01/13(金) 10:57:03.63
バッククオート展開で無理やり変数埋め込みとかしなくてよくなるのは嬉しい
0692名無しさん@お腹いっぱい。2012/01/13(金) 11:06:45.92
>>689
どっかで defvar してるシンボル名とバッティングしないような名前を使わなきゃいけないところは
変わらんってことか。

ネームスペースはよ
0693名無しさん@お腹いっぱい。2012/01/13(金) 14:48:38.91
auto-completeでメジャーモードhoge-modeの補完候補を~/.emacs.d/ac-dict/hoge-modeの各行としたいです
tabを押さずに自動的に補完候補を表示するスタイルにしたいと思います
.emacsに
(setq ac-auto-start t)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
(add-to-list 'ac-modes 'hoge-mode)
と書いてhoge-modeを~/.emacs.d/ac-dictに置いたのですが何にもなりません
ac-dict/hoge-modeは改行(lf)区切りなのですが、それがいけないのでしょうか
http://cx4a.org/software/auto-complete/manual.ja.html
このマニュアルにはそういうことが書いていないのでよくわかりません
0694名無しさん@お腹いっぱい。2012/01/13(金) 15:27:05.91
当然だけど
(require 'auto-complete-config) とか
(ac-config-default) とかは普通に書いてあるんだよな?
0695名無しさん@お腹いっぱい。2012/01/13(金) 16:16:39.75
>>694
(require 'auto-complete-config) は書いていましたが
(ac-config-default)が抜けていました。
ばっちり動きました!ありがとうございました。
0696名無しさん@お腹いっぱい。2012/01/14(土) 10:09:51.35
anythingってupgradeするたびに動かなくなるね。ぽぽぽぽーん。。
すごいわ。修正された行数とかもすさまじいし。。
うんざり。
0697名無しさん@お腹いっぱい。2012/01/14(土) 10:20:52.49
Semanticはちゃんと補完してくれてかなりいいんだけど、カーソルの下の
関数名の定義場所がエコーエリアに表示されているにもかかわらず、
そこに飛ぶ術がないという糞仕様。
そもそも使いづらいからAnything用のインターフェースでも作るかな…
0698名無しさん@お腹いっぱい。2012/01/14(土) 10:27:57.09
あ、動いた。どうやらanything-match-plugin.elが必須になったぽいな。
そしてこのモッサリ感。鈍重すぎる。
もともと腐ってたのが白骨化した死骸のような感じになってきたな。
0699名無しさん@お腹いっぱい。2012/01/14(土) 12:07:34.45
ごめん質問。ひさびさのEmacsで困ってる。
eshellでも(call-proccess ... )の出力をバッファに出しても
表示される日本語部分が化けてしまう。UTF-8なテキストファイル開くと化けない。
UTF-8環境なLinux上。Emacs23にて。
set-language-environment "Japanese"だし
set-terminal-coding-systemもset-keyboard-coding-systemも
set-buffer-file-coding-systemもdefault-buffer-file-coding-systemも
全部utf-8としたし、実際化けてるバッファでも左下はU:と表示されてるからutf-8に
なってるはずなんだが。
なにか解決のヒントくれたらおいら嬉しいのでおねがいしまふ
0700名無しさん@お腹いっぱい。2012/01/14(土) 12:14:26.08
default-coding-system は設定してある?

最近は個別にコーディングシステム設定しないで
(prefer-coding-system 'utf-8-unix) とかするもんらしい。
バッファ/ファイル名からプロセスから何から何まで一発でやってくれるよ。

0701名無しさん@お腹いっぱい。2012/01/14(土) 12:22:24.16
あわわ
× default-coding-system
○ default-process-coding-system でした
0702名無しさん@お腹いっぱい。2012/01/14(土) 12:24:27.36
>>697
anything と semantic で検索するとちらほら引っかかるけど
それじゃだめなん?
0703名無しさん@お腹いっぱい。2012/01/14(土) 12:34:23.81
>>699
process-filter-multibyte-p
set-buffer-multibyte
とかの multibyte 関係。
0704名無しさん@お腹いっぱい。2012/01/14(土) 12:37:58.99
むしろ一旦何も設定しない状態で試したほうがいいと思うの
0705名無しさん@お腹いっぱい。2012/01/14(土) 12:44:07.38
そもそも最近の emacs って
LANG=ja_JP.UTF=8 とかしておけば特に何の設定もしなくても
ちゃんと日本語でUTF-8な環境にセットアップしてくれるんだよな。
0706名無しさん@お腹いっぱい。2012/01/14(土) 13:20:19.97
編集中の文書のアウトライン表示させるためにsr-speedbarを試しています。
http://www.emacswiki.org/emacs/SrSpeedbar
なかなかいい感じですが編集中ファイルと同じディレクトリに他のファイルが
あると,speedbarにそれらのファイル以外も表示されてしまいます。編集中の
ファイルだけをspeedbarに表示する方法があれば教えてください。
0707名無しさん@お腹いっぱい。2012/01/14(土) 13:33:09.07
>>706
自分で新たに speedbar のモードを書くしかないと思う。
*SPEEDBAR* で b とか r を押せば開いているバッファが表示されるけれど、これは違うのだろうし。
0708名無しさん@お腹いっぱい。2012/01/14(土) 13:48:41.17
speedbar-file-regexp を make-local-variable して
バッファ名だかバッファファイル名だかだけ引っかかるような設定にすりゃいいんでないの。

これも悪くないな
http://d.hatena.ne.jp/kitokitoki/20100517
07096992012/01/14(土) 14:06:07.65
>>700
(prefer-coding-system 'utf-8-unix)
でいけました。ありがとー
07106972012/01/14(土) 14:10:38.94
>>702
ttp://dev.ariel-networks.com/Members/matsuyama/open-anything-emacs/
ここで目的のものが見つかった。
ただ、Anythingのソース作成方法を理解してないからよくわからん。
積読状態だった例の本をちゃんと読むか…
0711名無しさん@お腹いっぱい。2012/01/14(土) 15:07:22.59
るびきちさんが叩かれてる理由がだんだん分かってきた。
0712名無しさん@お腹いっぱい。2012/01/14(土) 15:08:20.51
大部分が男のジェラシーですね
0713名無しさん@お腹いっぱい。2012/01/14(土) 15:16:00.39
>>712
違うと思う。
0714名無しさん@お腹いっぱい。2012/01/14(土) 15:39:05.52
ジェラシーとか嫉妬とか言うやつは一人しかいないわけで。
何もかも一人でやってるようなグラマにろくなのはいないっていう悪例だよ。
0715名無しさん@お腹いっぱい。2012/01/14(土) 15:43:01.18
カーソル行の冒頭の空白の類いを取得したいです
正規表現は^[\t\s]+でカーソル行を取得するのは(thing-at-point 'line)でよいのですが
取り出した文字列を正規表現で検索する方法がわかりません
正規表現で検索というとre-search-forwardがありますが
これではバッファ内の文字列を検索することになってしまいます
どうすればいいでしょうか
0716名無しさん@お腹いっぱい。2012/01/14(土) 15:48:26.55
string-match
0717名無しさん@お腹いっぱい。2012/01/14(土) 15:57:07.69
\C-h f re-search-backward
0718名無しさん@お腹いっぱい。2012/01/14(土) 16:24:06.55
>>716-717
ありがとうございます。調べた結果
string-matchでもre-search-backwardでもできました
0719名無しさん@お腹いっぱい。2012/01/14(土) 16:39:21.50
>>707
>>708
ありがとうございます。
自分で設定する方法はわからないので,しばらくはimenu-treeと併用してみます。

0720名無しさん@お腹いっぱい。2012/01/14(土) 19:31:25.59
マクロを使いたいけど以下のようにしたい場合はどうしたらいいのでしょう?

・コンパイル後は内容が展開されるのでマクロ自体は未定義になってほしい
・コンパイルしないで el のみのロードの場合は普通に定義されたままでよい

eval-when-compile だと el のみのロードの場合にダメになっちゃいますよね・・・
0721名無しさん@お腹いっぱい。2012/01/14(土) 19:35:53.07
>>720
describe-function eval-when-compile
> In interpreted code, this is entirely equivalent to `progn'.
■ このスレッドは過去ログ倉庫に格納されています