トップページ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/
0230名無しさん@お腹いっぱい。2011/12/27(火) 12:04:09.38
>>229
emacsclientw.exe とか?
0231名無しさん@お腹いっぱい。2011/12/27(火) 13:57:42.71
>>230
ありがとうございます
それを使って設定できました
0232名無しさん@お腹いっぱい。2011/12/27(火) 21:10:00.44
メジャーモードの作成でdefine-generic-modeを使うとき
キーワードリストで設定するのと色づけリスト内のfont-lock-keyword-faceで設定するのは
変わりないのでしょうか?
それと、予約語や組み込み関数が膨大な言語を扱うときに一つ一つを書くのではなくて
予約語一覧や組み込み関数一覧の別ファイルを読みこんでfont-lockを設定できないものでしょうか
るびきち著のemacslispテクニックバイブル10章を読んでもこのあたりのことが
書いていないのでよくわかりません。
0233名無しさん@お腹いっぱい。2011/12/27(火) 22:00:50.40
generic-mode ではキーワードの外出しはサポートしてないっぽいね。

↓の関数でどうでしょ。
(defun keywords-from-file (file)
"ファイルからキーワードのリストを取得。ファイル内のキーワードは改行で区切ること"
(with-temp-buffer
(insert-file-contents file)
(split-string (buffer-substring-no-properties (point-min) (point-max)) "[\r\n]" t)))

(define-generic-mode
'hogehoge-mode
'("#")
(keywords-from-file "~/.emacs.d/hogehoge-mode-keywords")
...
)

みたいな感じで。
0234名無しさん@お腹いっぱい。2011/12/28(水) 02:04:40.26
>>233
ありがとうございます。うまくいきました。
0235名無しさん@お腹いっぱい。2011/12/28(水) 10:32:52.68
C-yでyankした後にM-yで履歴を遡れますが、
うっかり戻り過ぎた時に戻るコマンドはないのでしょうか。
リングを全部もう1周するのは大変です。
C-/でundoするのも時にはありなんですが、
やっぱり違ったって時にM-yを継続できないので不便です。
簡単に履歴を行ったり来たりできないのでしょうか。
0236名無しさん@お腹いっぱい。2011/12/28(水) 10:39:02.54
anything-show-kill-ringを使うといいよ^^^
0237名無しさん@お腹いっぱい。2011/12/28(水) 10:43:02.78
標準の M-y だとあんまり器用なことはできないね。
M-1 M-y とかで yank するヒストリの位置を指定したりできるけどそんなの頭で把握していないだろうし。

素直に browse-yank とか kill-summary とか browse-kill-ring とか popup-kill-ring とかの
貼る奴を選べるタイプのを使ったほうがいいと思う。

anything でも kill-ring は扱えるらしいんだけど使っていないからちょっとそっちは分からない。
0238名無しさん@お腹いっぱい。2011/12/28(水) 10:55:49.77
>>235
C-u -1 M-y
0239名無しさん@お腹いっぱい。2011/12/28(水) 11:06:30.27
M-- M-y でいいじゃん。
anything なんか勧めるな
0240名無しさん@お腹いっぱい。2011/12/28(水) 11:18:09.10
そういうこと言っちゃうとまた彼がくるよ。
0241名無しさん@お腹いっぱい。2011/12/28(水) 11:24:06.46
実際anything使ってるの?
auto-completeの作者はanythingアンチっぽいな
0242名無しさん@お腹いっぱい。2011/12/28(水) 11:35:51.24
割と技術ある人はだいたいanythingアンチ。
若い人があの人の煽りに乗せられちゃってるんだよ。
0243名無しさん@お腹いっぱい。2011/12/28(水) 12:06:07.16
> auto-completeの作者はanythingアンチっぽいな
これソース何?その人のブログとか読んだ限りじゃanythingユーザっぽいんだが…
0244名無しさん@お腹いっぱい。2011/12/28(水) 12:27:14.73
過剰反応
0245名無しさん@お腹いっぱい。2011/12/28(水) 13:25:04.41
>>235
redo.elで検索
0246名無しさん@お腹いっぱい。2011/12/28(水) 14:35:05.68
技術のある人はanythingを使わない(キリ
技術のある人はるびきち本などクソだと思っている(キリッ
vim・nviなどviではない(キリリッ
0247名無しさん@お腹いっぱい。2011/12/28(水) 16:01:44.06
/*
test
hoge
test
hoge
*/
これ全体にヒットするelispの正規表現はどのようなものでしょうか?
/\\*[\\n.]+\\*/ と書いたのですがヒットしませんでした
0248名無しさん@お腹いっぱい。2011/12/28(水) 16:12:30.51
> /\\*[\\n.]+\\*/

bracket (文字クラス) の中では . の意味は失われて通常文字になる。

(re-search-forward "/\\*\\(\n\\|.\\)*?\\*/")

でとりあえずマッチする。
コメントみたいなのに正規表現はあんまりよくないんじゃないかね。
0249名無しさん@お腹いっぱい。2011/12/28(水) 16:18:39.47
> コメントみたいなのに正規表現はあんまりよくないんじゃないかね。

よくないって書いたのはコメントが大きくなってきたときに正規表現がオーバー
フローするって意味です。ちょっとした利用なら気にしなくていいはずです。
02502472011/12/28(水) 16:25:53.05
ありがとうございます。わかりました。
0251名無しさん@お腹いっぱい。2011/12/28(水) 17:20:48.37
るびきちとご飯を食べる会とかやってるみたいだし
elisp書いてる界隈は総じて仲良いように見えるけどな。
anything!!anything!!ってプッシュしてなきゃあの人も色々面白い記事かくいい人だと思うよ。
0252名無しさん@お腹いっぱい。2011/12/28(水) 17:29:19.67
どんないい記事かこうとあの情報商材みたいな文章の羅列ですべて台無しだよ。
どっかの大学にでも勤めて真っ当な研究でもすればいいのに。いや無理か。。
0253名無しさん@お腹いっぱい。2011/12/28(水) 17:30:56.46
うるせえ、創造的破壊するぞ
0254名無しさん@お腹いっぱい。2011/12/28(水) 17:33:59.06
イノベーション()
0255名無しさん@お腹いっぱい。2011/12/28(水) 17:38:16.02
そうだね
倭猿ごときがEmacsの伝道師なぞ恐れ多いわ
0256名無しさん@お腹いっぱい。2011/12/28(水) 17:41:26.13
Lisp方言ならまかせろー!ならまだいいんだけど
たかだか1エディタの設定だけだもんな
0257名無しさん@お腹いっぱい。2011/12/28(水) 17:46:11.19
もうちょっと手広くやればいいのにね。
Emacsだけで食べるなんて無理だよ。
100ユーザ集ったとか悪いけど嘘くさすぎる。
0258名無しさん@お腹いっぱい。2011/12/28(水) 17:48:25.85
まだ本業のrubyがあるからあわてる時期じゃない
0259名無しさん@お腹いっぱい。2011/12/28(水) 17:50:15.62
そういえば設定本にviewer.elでview-modeのmode-lineを色付けして
他のモードと区別しやすくしようなんてページがあったのだけど

載ってるスクショが白黒だた
0260名無しさん@お腹いっぱい。2011/12/28(水) 17:53:07.29
>>258
最後の ruby kaigi に参加したとき自分の中でrubyは三年前のままで時間が止まってるとかほざいてたぞ。
お前その名前詐欺だろと思ったわ。
0261名無しさん@お腹いっぱい。2011/12/28(水) 17:55:39.93
>>259
ズコーw
0262名無しさん@お腹いっぱい。2011/12/28(水) 17:57:45.09
お前ら文句いいつつもしっかり本買ってるあたり、るびきちのことなんだかんだいって好きだよな
0263名無しさん@お腹いっぱい。2011/12/28(水) 17:58:27.22
嫌いです。
0264名無しさん@お腹いっぱい。2011/12/28(水) 17:58:35.12
ひとくくりにされてもな。
0265名無しさん@お腹いっぱい。2011/12/28(水) 18:03:04.34
Elisp本はLisp遊びで充分です
0266名無しさん@お腹いっぱい。2011/12/28(水) 18:04:38.74
リスト遊びか?
0267名無しさん@お腹いっぱい。2011/12/28(水) 18:18:48.69
俺らるびきちなんて格下興味ないからな
0268名無しさん@お腹いっぱい。2011/12/28(水) 18:23:38.65
lisp遊びなんてでてたんや
0269名無しさん@お腹いっぱい。2011/12/28(水) 18:54:32.36
山本さんのじゃなくて?
0270名無しさん@お腹いっぱい。2011/12/28(水) 18:57:51.43
>>264
なあ。俺らはるびきち本がどんなにつまらん内容か確認するためだけに買ってその後捨てたわ。
0271名無しさん@お腹いっぱい。2011/12/28(水) 19:17:33.42
せめてbookoffに。
0272名無しさん@お腹いっぱい。2011/12/28(水) 19:24:54.32
少しでも無意味な本が世に出回らんようにという配慮だ
emacswikiもいらん、このスレだけで十二分だ
0273名無しさん@お腹いっぱい。2011/12/28(水) 19:41:22.07
俺なんか間違ってあんな本を買うやつが出ないように近くの本屋で買い占めたからな
0274名無しさん@お腹いっぱい。2011/12/28(水) 19:49:32.87
山本さんは今ではHaskellの人というイメージやな
0275名無しさん@お腹いっぱい。2011/12/28(水) 20:39:36.16
お前らかずさんのことを悪く言うのか
0276名無しさん@お腹いっぱい。2011/12/28(水) 20:42:01.54
emacswiki面白いけどなあ。

>>273
俺も買い占めは出来なかったけどせめての布教防止にと2冊買った。
0277名無しさん@お腹いっぱい。2011/12/28(水) 22:27:24.40
だれもkazuさんのことを悪く言ってない
悪く言われているのは……
0278名無しさん@お腹いっぱい。2011/12/28(水) 22:39:30.78
なんでルビキチって叩かれてるの?
0279名無しさん@お腹いっぱい。2011/12/28(水) 22:44:46.33
一流のスポーツ選手ほど叩かれる
つまりそういうことだ
0280名無しさん@お腹いっぱい。2011/12/28(水) 22:46:15.31
つまりルビキチは神ってことすか?
0281名無しさん@お腹いっぱい。2011/12/28(水) 22:49:10.02
神キチ
0282名無しさん@お腹いっぱい。2011/12/28(水) 23:06:09.34
キチさんってruby時代から叩かれてるよね
あの頃は顔写真まで使って叩いてて酷いと思った
0283名無しさん@お腹いっぱい。2011/12/28(水) 23:07:47.51
アクの強いキャラクターだからなあ
別に悪人じゃないし色々貢献している人ではあるんだけど
0284名無しさん@お腹いっぱい。2011/12/28(水) 23:12:26.85
いったい何に貢献してるんだ?
最近anything連呼してるだけじゃん。
0285名無しさん@お腹いっぱい。2011/12/28(水) 23:13:51.02
個人的にはjplの人が一番偉いと思ってる
0286名無しさん@お腹いっぱい。2011/12/28(水) 23:14:14.58
設定本では「筆者が開発している」anythingだったのが
elisp本では「筆者がメンテナンス・開発している」anythingになっていた
ちなみに原作者の名前はまったく出てこない。まさに神の御業である
0287名無しさん@お腹いっぱい。2011/12/28(水) 23:45:54.41
るびきちが残念なのはemacsの枠内でだけ考えていること
anything.elもなんだかんだ言って既存のemacsスクリプトを取り込んで拡張していったから
自ずと限界は見えてしまう

anything.elがemacsの諸ライブラリの統合だと主張するのはわかったから
つぎはvimとemacsの統合というか融合の形を見せてほしい
0288名無しさん@お腹いっぱい。2011/12/28(水) 23:49:42.01
なんだそりゃ
0289名無しさん@お腹いっぱい。2011/12/28(水) 23:55:24.14
viperでいいのでは
0290名無しさん@お腹いっぱい。2011/12/29(木) 00:01:08.69
いちおうるびきちのブログみる感じだとemacs内で閉じるのは×で
外部プログラム使おうぜって主張だったと思うけど。

正直emacs内のhttpライブラリとかうんこちんちんだからなあ。
ただ外部プログラム呼ぶと他の環境に移る時めんどくさい。
0291名無しさん@お腹いっぱい。2011/12/29(木) 00:35:35.93
>>290
>正直emacs内のhttpライブラリとかうんこちんちんだからなあ。
詳しく聞きたい
0292名無しさん@お腹いっぱい。2011/12/29(木) 00:40:34.06
俺達って、もう Emacs だけで第一線張っていくの無理なのかな……(涙
なんとか言ってくれよ誰か!俺達が…俺達が費した青春は何だったんだよ!
0293名無しさん@お腹いっぱい。2011/12/29(木) 00:47:03.98
url.el が糞な点

・POSTメソッドをサポートしてない
・非同期接続時にタイムアウト指定できない
・接続待機はコンパイル時のオプション次第によっては非同期にならない

これはあかんよ。
0294名無しさん@お腹いっぱい。2011/12/29(木) 01:06:16.02
>>293
postメソッドについては知らなかった
そうだったのか
0295名無しさん@お腹いっぱい。2011/12/29(木) 11:50:02.70
モードラインに現在のバッファの最大行数を常に表示するのにはどうしたらいいんですか?
02962352011/12/29(木) 12:39:55.01
外部プログラムに頼りたくないので>>239さんの
M-- M-y
を使いたいと思います。
みなさんありがとうございました。
0297名無しさん@お腹いっぱい。2011/12/29(木) 12:49:16.97
define-generic-modeの初期化関数リストの部分で
(custom-set-faces
'(font-lock-keyword-face ((t (:foreground "yellow")))))
のようにすると他のモードにも色が反映されてしまうのですが、
任意のモードのときにのみ特定の色をつけるということは可能でしょうか
0298名無しさん@お腹いっぱい。2011/12/29(木) 13:09:33.71
>>297
デフォルトのfaceを使いたくない場合は、自分でfaceを作って
font-lock に教えてあげる必要がある。
特定のフェイスの色をバッファ毎に置き換える方法はちょっと分からない。

(make-face 'hogehoge-green-face)
(set-face-attribute 'hogehoge-green-face nil :foreground "green")

(make-face 'hogehoge-red-face)
(set-face-attribute 'hogehoge-red-face nil :foreground "red")

(font-lock-add-keywords 'hogehoge-mode
'(("^GREEN: .*" . 'hogehoge-green-face)
("^RED: .*" . 'hogehoge-red-face)))

んで、
generic-mode の場合は generic-make-keyword-list って関数があって、
これだとキーワードのリストに対して任意の face を指定出来るみたいだからこっち使ったほうがいいのかもね。
詳しい使い方は関数のヘルプをみてちょうだいな。
0299名無しさん@お腹いっぱい。2011/12/29(木) 13:11:14.19
typo だ。
× generic-make-keyword-list
○ generic-make-keywords-list
0300名無しさん@お腹いっぱい。2011/12/29(木) 14:34:09.80
kbd マクロに変数を渡すとエラーになってしまいますが
どうしても変数を渡したい場合は以下の方法しかないんでしょうか?
(setq a "C-c a")
(kbd a) ;; => (wrong-type-argument integer-or-marker-p a)
(eval `(kbd ,a)) ;; => "^C"
0301名無しさん@お腹いっぱい。2011/12/29(木) 14:57:49.13
横レスだけど

(macroexpand '(kbd a))

>Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p a)
となるのはなぜなのだろう?
(macroexpand '(dolist (x '(a b c)) (print x)))
は問題ないのに
0302名無しさん@お腹いっぱい。2011/12/29(木) 15:32:41.59
なんでって質問にはなかなか答えられないかもしれない。。
lisp reader作っちゃうような真性lisperの集まるスレに行って聞くといいかも。
プログラム板のschemeとかclとかの。

>>300
(setq a "C-c a")
(read-kbd-macro a)

ってやっちゃうととりあえず願いは叶うんだろうけど、これじゃ不満だろうか?
kbd はシンタックスシュガーな気がするしループの中でなんかするとかそうい
う使い方じゃないんじゃなかろうか。
0303名無しさん@お腹いっぱい。2011/12/29(木) 15:49:18.27
>>301だけどありがとう
なるほど
0304名無しさん@お腹いっぱい。2011/12/29(木) 16:11:41.68
>>301
macroexpandはマクロを実行するものだから。
マクロというのはありえいにいえば処理系に置き換えてもらいたい式を返す関数。
この場合 (kbd 'a) が実行される。
0305名無しさん@お腹いっぱい。2011/12/29(木) 16:30:54.88
elispを編集中にカーソル下の関数の説明を見るにはどうすればよいですか?
0306名無しさん@お腹いっぱい。2011/12/29(木) 17:34:09.08
>>305
describe-function
C-h をバックスペースにしてなければ C-h f
0307名無しさん@お腹いっぱい。2011/12/29(木) 19:30:33.63
>>306
ありがとうございました。
0308名無しさん@お腹いっぱい。2011/12/29(木) 20:03:41.81
メジャーモードやマイナーモードで
1タブあたりの半角空白の数を指定するにはどうするのですか
0309名無しさん@お腹いっぱい。2011/12/29(木) 20:14:26.30
(add-hook 'なんかの-mode-hook
(lambda () (setq tab-width 4)))
0310名無しさん@お腹いっぱい。2011/12/29(木) 20:17:02.17
(add-hook 'hoge-mode-hook
(lambda ()
(set (make-variable-local 'tab-width) 10)
(set (make-variable-local 'tab-stop-list) '(10 20 30 40 50 60 70 80 90))))
0311名無しさん@お腹いっぱい。2011/12/29(木) 20:17:19.76
間違い
make-local-variable だった。
0312名無しさん@お腹いっぱい。2011/12/29(木) 20:35:18.17
>>309
できました。
0313名無しさん@お腹いっぱい。2011/12/29(木) 20:45:44.21
初心者質問増えた気がするのはrubikitch本の影響なのかなぁ。
0314名無しさん@お腹いっぱい。2011/12/29(木) 21:07:39.90
http://www.mag2.com/m/0001373131.html
るびきちの経歴をはじめて見た気がする
0315名無しさん@お腹いっぱい。2011/12/29(木) 21:08:33.99
>>313
Software Design とかで Emacs の特集くまれたのも関係してるのかもね。
0316名無しさん@お腹いっぱい。2011/12/29(木) 21:08:33.89
るびきちは責任もってにわかの処理をしろ
0317名無しさん@お腹いっぱい。2011/12/29(木) 21:14:15.30
とりあえず anything 使っとけで OK

0318名無しさん@お腹いっぱい。2011/12/29(木) 21:16:33.71
Emacs をこれからわざわざ使い始める必要はないと思うけどなあ。

Emacsのキーバインドは呪いだぞ。下手になれるとずーーーーーっと付きまとわれる。
0319名無しさん@お腹いっぱい。2011/12/29(木) 21:17:07.28
小指が痛いのは呪いのせいだぜ。
0320名無しさん@お腹いっぱい。2011/12/29(木) 21:35:38.97
>>316
http://www.mag2.com/m/0001373131.html

で500yen/1month払った人の相手は責任もってやります。
0321名無しさん@お腹いっぱい。2011/12/29(木) 21:39:04.70
内容読んでないからわからないけど
むしろ入門書よんでたら describe-function とかタブ幅設定知らないってことはないんじゃないのか?
0322名無しさん@お腹いっぱい。2011/12/29(木) 21:39:34.05
http://www.mag2.com/m/0001373131.html
> 【月額512円】 1配信あたり約 512円

これが525円? ぼったくりにもほどがある。
0323名無しさん@お腹いっぱい。2011/12/29(木) 21:53:46.94
512って書いてあんじゃん!
0324名無しさん@お腹いっぱい。2011/12/29(木) 21:54:34.37
消費税の魔力は恐ろしいな。
0325名無しさん@お腹いっぱい。2011/12/29(木) 22:04:44.97
テンプレに初心者はるびきちに聞けって入れとうこうぜ
0326名無しさん@お腹いっぱい。2011/12/29(木) 22:17:21.39
inhibit-startup-echo-area-message ってなんでわざわざあんなめんどくさい仕様なの?
0327名無しさん@お腹いっぱい。2011/12/29(木) 22:20:05.18
バイトコンパイルで動作が速くなるというのは.elと比べて
起動時の読み込み処理+起動後の処理の両方が速くなるということでしょうか
0328名無しさん@お腹いっぱい。2011/12/29(木) 22:23:48.15
読み込みが早くなるだけで実行速度はかわらないんでないの。
読み込んだ後にどうせ内部的にコンパイルしているわけだし。
0329名無しさん@お腹いっぱい。2011/12/29(木) 22:49:44.35
いや、計算が多いコードだと明らかに速くなるよ。
■ このスレッドは過去ログ倉庫に格納されています