トップページ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/
04864792012/01/04(水) 16:12:44.06
>>480
もしかして、自分はここの人たちと比べても変態なのか……!?

PC のスペックが Intel(R) Atom(TM) CPU N455 @ 1.66GHz
と低いことに原因があるのかな。
0487名無しさん@お腹いっぱい。2012/01/04(水) 16:25:04.74
Atomだから遅いのかもね。
あとうちでは一回目と二回目で起動時間の差が生じたな。
初回は7秒ぐらいだったのが2回目は1秒ぐらいになってた。
ディスクキャッシュとかフォントとかそこら辺のせいっぽいなあ。
0488名無しさん@お腹いっぱい。2012/01/04(水) 19:16:11.14
imenuとかこんなに便利なもの全然しらなかったよ
menubar関係かと思ってスルーしてた

るびきちの本はニワカだったら買って損ないわ
知ったかして敬遠してて損した
0489名無しさん@お腹いっぱい。2012/01/04(水) 19:32:28.19
ステマか
0490名無しさん@お腹いっぱい。2012/01/04(水) 19:42:10.48
あからさマ
0491名無しさん@お腹いっぱい。2012/01/04(水) 19:55:25.37
とうとうこんな僻地のEmacsスレにまでステマの波が・・・
0492名無しさん@お腹いっぱい。2012/01/04(水) 20:25:01.45
放置しておくべきなんだろうけど。
あいつよっぽど生活苦しいんだろうな。
0493名無しさん@お腹いっぱい。2012/01/04(水) 20:35:53.09
買い支えてやれよ。

どうせならLisp極めてそれ系の本出したほうがかっこいいのにね。
0494名無しさん@お腹いっぱい。2012/01/04(水) 20:50:22.94
なんでelispに拘り続けるのかわからんよね。
elispをバネに他の言語にも拡げればいいのに。
rubyに挫折して大した能力がないと自覚しちゃったのかな?
だとしたら、気の毒で憐れなやつだよな。
0495名無しさん@お腹いっぱい。2012/01/04(水) 20:51:17.33
Emacs Lispテクニックバイブル正誤 - (rubikitch loves (Emacs Ruby CUI Books))
http://d.hatena.ne.jp/rubikitch/20120104/elispbookerrata
0496名無しさん@お腹いっぱい。2012/01/04(水) 21:16:02.43
>>495
>完全メールサポートつきで初月無料
>でなので安心して誤登録ください。
errata で誤字とか lisp 的でいいな。
0497名無しさん@お腹いっぱい。2012/01/04(水) 21:18:40.48
誤って登録しても初月無料ですから安心してっていいたかったんじゃない?
0498名無しさん@お腹いっぱい。2012/01/04(水) 21:28:39.22
なるほど
0499名無しさん@お腹いっぱい。2012/01/04(水) 21:54:57.85
>>494
るびきちより有能な奴10000人が書き込むこのスレって天才たちの社交場だな
0500名無しさん@お腹いっぱい。2012/01/05(木) 05:00:09.62
>>499
ああ、こういうのを負け犬の遠吠えっていうんだな。
0501名無しさん@お腹いっぱい。2012/01/05(木) 10:55:29.78
emacs24はクロージャ正式にサポートかよ
0502名無しさん@お腹いっぱい。2012/01/05(木) 11:57:07.33
今年こそは真面目に脱Emacsをはかるぜ
リハビリにしばらくWindowsのメモ帳だけで生活してやる
0503名無しさん@お腹いっぱい。2012/01/05(木) 12:11:07.06
おもむろに elisp 紹介
・Ace jump mode - emacs 用 hit-a-hint 風カーソル移動
https://github.com/winterTTr/ace-jump-mode/

(require 'ace-jump-mode)
(global-set-key (kbd "C-;") 'ace-jump-mode)

ってやって C-; a とか押すと画面上の a のところにアルファベットの連番が振られて
押せばジャンプできる。
0504名無しさん@お腹いっぱい。2012/01/05(木) 12:17:38.59
isearchでよくね?
0505名無しさん@お腹いっぱい。2012/01/05(木) 12:21:35.58
バッファ開きまくってる人がこれで統計とると面白そうだ

(defun buffer-mode-histogram ()
"Display a histogram of emacs buffer modes."
(interactive)
(let* ((totals '())
(buffers (buffer-list()))
(total-buffers (length buffers))
(ht (make-hash-table :test 'equal)))
(save-excursion
(dolist (buffer buffers)
(set-buffer buffer)
(let
((mode-name (symbol-name major-mode)))
(puthash mode-name (1+ (gethash mode-name ht 0)) ht))))
(maphash (lambda (key value)
(setq totals (cons (list key value) totals)))
ht)
(setq totals (sort totals (lambda (x y) (> (cadr x) (cadr y)))))
(with-output-to-temp-buffer "Buffer mode histogram"
(princ (format "%d buffers open, in %d distinct modes\n\n"
total-buffers (length totals)))
(dolist (item totals)
(let
((key (car item))
(count (cadr item)))
(if (equal (substring key -5) "-mode")
(setq key (substring key 0 -5)))
(princ (format "%2d %20s %s\n" count key
(make-string count ?+))))))))
0506名無しさん@お腹いっぱい。2012/01/05(木) 12:44:35.74
emacs ユーザ分布
http://maps.google.com/maps/ms?msid=206578397069667369090.0004b0f0502b612864fbe&msa=0&ll=19.642588,23.554688&spn=103.499573,345.585938

日本人いねーぞこら
0507名無しさん@お腹いっぱい。2012/01/05(木) 12:55:44.01
>>501
そもそもいつ正式リリースなの?
0508名無しさん@お腹いっぱい。2012/01/05(木) 13:03:05.07
emacs を heroku で動かす。マジキチ
https://github.com/technomancy/heroku-buildpack-emacs
0509名無しさん@お腹いっぱい。2012/01/05(木) 13:10:03.26
>>502
頑張れ
ちゃんとそれを周りの人間にも広めるんだぞ
0510名無しさん@お腹いっぱい。2012/01/05(木) 20:27:35.45
>>502
copy con ファイル名

でおk
0511名無しさん@お腹いっぱい。2012/01/05(木) 20:31:29.98
じゃあ俺は type con > ファイル名ちゃん!
0512名無しさん@お腹いっぱい。2012/01/05(木) 20:48:11.81
半角空白と全角空白とタブに色をつけて区別したいのですが
どうすればよいのでしょうか
0513名無しさん@お腹いっぱい。2012/01/05(木) 21:02:06.09
>>512
whitespace-mode

標準だと全角には対応していないと思うので、
適当に whitespace-space-regexp などを変更する。
0514名無しさん@お腹いっぱい。2012/01/05(木) 21:10:29.22
find-dired の結果が綺麗に縦並びにならないのは仕様と思って諦めるしかないんでしょうか。
0515名無しさん@お腹いっぱい。2012/01/05(木) 21:22:02.03
>>499, >>500
痛いところ突いちゃってごめん。反省してます。
人を傷付けると自分も傷つきますね。
0516名無しさん@お腹いっぱい。2012/01/05(木) 21:34:42.64
はやく答えろよるびきち以下の低能ども
0517名無しさん@お腹いっぱい。2012/01/05(木) 21:41:08.82
世界最高のエディタで世界最先端の研究を行い
IT業界すなわち世界経済を支える
るびきちに逆らえるのは各国首脳クラスから。
2ちゃんねらーは常に「るびきち様」と呼ばなければいけない。
05185142012/01/05(木) 21:50:47.17
find-dired の日付フォーマットは変更出来るのでしょうか?
find-ls-option の ls 部分に '--time-style=+%Y/%M/%D' とかつけたところ
出力の日付は望みどおりになったのですが、その代わり dired が正しくファイルを認識して
くれなくなってしまいました。
0519名無しさん@お腹いっぱい。2012/01/05(木) 21:54:29.66
>>514
diredなんて窓から投げ捨てるのが正しいと思う。
あんな表示すら満足に変えられない前世紀の遺物を使うやつの気がしれん。
0520名無しさん@お腹いっぱい。2012/01/05(木) 22:19:14.76
投げ捨てられないやつがemacs使ってるんだよ。
ただ、ゴミはあってもゴミじゃない。
0521名無しさん@お腹いっぱい。2012/01/05(木) 23:38:44.28
RMSが離れたとたんリリースサイクルが速くなったような気がする
0522名無しさん@お腹いっぱい。2012/01/05(木) 23:50:17.07
もうrmsも老害か。lose32ってやってるの見ててなんか色々思っちゃった。
0523名無しさん@お腹いっぱい。2012/01/05(木) 23:51:11.63
>>519
少しカスタマイズしたdiredですこぶる快適に使えているが。
とりあえず何が不満なのか言ってみ。
0524名無しさん@お腹いっぱい。2012/01/06(金) 00:24:49.33
レジスタ使いこなしてる人ってどんだけいるんだろう
0525名無しさん@お腹いっぱい。2012/01/06(金) 00:34:22.55
bf-mode と popwin の相性が今ひとつで悲しい
0526名無しさん@お腹いっぱい。2012/01/06(金) 10:30:11.51
>>513
ありがとうございます。
できました。
0527名無しさん@お腹いっぱい。2012/01/06(金) 12:36:51.01
find-grep-dired でも lv 付属の lgrep を使いたいんですがうまく動作できません。
うまく動かせている方はいらっしゃりますでしょうか?

find-grep-dired のソースを見てみると、lgrep が対応していないオプション -e がハードコーディングされていたので
defadvice で書き換えたのですが、こんどは lgrep に出力無しにするオプションがないため
dired 側がまともに動かなくなりました。
0528名無しさん@お腹いっぱい。2012/01/06(金) 13:15:53.03
過去ログ眺めてるとるびきちがいかに愛されているかよくわかっていいな。
0529名無しさん@お腹いっぱい。2012/01/06(金) 13:20:10.22
* このスレでのコミュニケーションを前スレ以上に活発にすること (用がなくとも、毎日の書き込みが理想)
* 部外者/非Emacsユーザーの書き込みも可。但し、女性の書き込みは場の雰囲気を乱すので不可
0530名無しさん@お腹いっぱい。2012/01/06(金) 13:26:07.82
>>527
find-grep-dired で lgrep を使うメリットは何?
0531名無しさん@お腹いっぱい。2012/01/06(金) 13:26:47.90
auto-complete.elで候補選択にカーソルキーではなくてC-nとC-pを使うようにするには
どうすればよいですか
候補選択時だけカーソルキーまで手を伸ばすのに違和感がありますので
0532名無しさん@お腹いっぱい。2012/01/06(金) 13:32:39.48
>>530
日本語で検索したかったので。
色んなエンコードのファイルが散らばっているのです。
0533名無しさん@お腹いっぱい。2012/01/06(金) 13:32:56.08
(setq ac-use-menu-map t)
05345302012/01/06(金) 13:33:41.70
>>532
わり、勘違いした。
05355312012/01/06(金) 13:49:57.19
>>533
探していたのはまさにそれです
ありがとうございます。
0536名無しさん@お腹いっぱい。2012/01/06(金) 13:53:42.91
最近カキコが多いな、なんで?
0537名無しさん@お腹いっぱい。2012/01/06(金) 13:55:35.12
メルマガから人ながれてきてるんだろ
0538名無しさん@お腹いっぱい。2012/01/06(金) 13:59:10.09
例のメルマガか
0539名無しさん@お腹いっぱい。2012/01/06(金) 14:06:22.37
(read-string)で入力を要求しバッファ内の文字列とヒットするなら再度入力を求め、
ヒットしないならコマンドを呼び出した位置に入力した文字列を装飾して挿入したいです
(interactive)
(let ((str (read-string "input: ")))
(save-excursion
(while (search-forward str nil t) ; バッファ内の文字列とヒットしてしまった
;; ここで(read-string)を再度呼び出したい
))
;; save-excursionを抜けてからstrを使って挿入する
(insert (format "%s" (make-my-decoration str))))
このような処理を考えたのですが
(read-string)を二度書かない方法はあるでしょうか
0540名無しさん@お腹いっぱい。2012/01/06(金) 14:07:36.00
すみません一行分抜けていました
(save-excursion

(save-excursion
(goto-char (point-min))
です
0541名無しさん@お腹いっぱい。2012/01/06(金) 14:09:26.25
2度書かないって、再度入力する必要があるなら2度呼ばなきゃいけないんじゃ・・
それとも再帰的に処理したいってことか?
0542名無しさん@お腹いっぱい。2012/01/06(金) 14:29:08.57
(defun somefunc ()
(interactive)
(let ((buf (save-excursion
(save-restriction
(widen)
(buffer-substring-no-properties (point-min) (point-max)))))
str)

(save-match-data
(while (and (setq str (read-string "input:"))
(string-match (regexp-quote str) buf))))

(insert (format "%s" (make-my-decoration str)))
))
0543名無しさん@お腹いっぱい。2012/01/06(金) 14:38:52.45
>>542
widen するかどうかは処理内容によるんじゃないのか?あとバッファ全コピはやりすぎだ

(defun somefunc ()
(interactive)
(let (str)
(save-match-data
(while (and (setq str (read-string "input:"))
(save-excursion
(goto-char (point-min))
(search-forward str nil t))))

(insert (format "%s" (なんか str)))
)))
0544名無しさん@お腹いっぱい。2012/01/06(金) 14:54:56.86
最近elispはじめました!なコード貼る奴増えたな。
0545名無しさん@お腹いっぱい。2012/01/06(金) 14:56:12.28
elispを編集しているとcomment-dwimの便利さに驚きます
そこでdefine-generim-modeで作ったモードにも同様の機能を盛り込みたいのですが
どうすればよいのですか
elispのコメントの仕様と同じものを希望します
具体的には、文字列が入力されている行なら行末に;1つ
(私の環境ではelispでは行末から20文字くらい右につきます)
リージョンが設定されているか
行に何も書いていなければ行頭に;2つ
よろしくお願いします
0546名無しさん@お腹いっぱい。2012/01/06(金) 14:59:19.24
>>544
いいことだな。
0547名無しさん@お腹いっぱい。2012/01/06(金) 15:01:11.90
おいおいゴミかきこが増えたな
るびきちのせいでこのスレのレベルが低下するのは勘弁だぜ
0548名無しさん@お腹いっぱい。2012/01/06(金) 15:01:27.84
>>545
外してたらすまんが、define-generic-mode の引数で正しくコメントの書式設定してたら
commend-dwim で普通にその動作にならない?
0549名無しさん@お腹いっぱい。2012/01/06(金) 15:02:47.50
2chなんぞよりredditがよっぽど有意義な盛り上がりを見せてるぞ。
http://www.reddit.com/r/emacs
0550名無しさん@お腹いっぱい。2012/01/06(金) 15:14:40.55
             ,.,.,.,.,.,.,.,.,__
           ,,;f::::::::::::::::::::::ヽ
           i::/' ̄ ̄ ̄ヾi::l
           |::| /  \,|::|
           |r-( ・ );( ・ )-|
           ( ヽ :::(__)..::  }  <・・・で?
        ,____/ヽ  -==- /
     r'"ヽ   t、  ヽ___/
    / 、、i    ヽ__,,/
    / ヽノ  j ,   j |ヽ
    |⌒`'、__ / /   /r  |
    {     ̄''ー-、,,_,ヘ^ |
    ゝ-,,,_____)--、j
    /  \__       /
0551名無しさん@お腹いっぱい。2012/01/06(金) 15:40:58.79
>>539
別解っぽいものを書いてみた。
call-interactively は使わないほうが行儀が良いような気がする。

>>544
変だったら指摘してくれると大助かり。

(defun somefunc (str)
  (interactive "sinput: ")
  (if (save-excursion
  (goto-char (point-min))
  (save-match-data
  (search-forward str nil 'noerror)))
  (call-interactively 'somefunc)
  (insert str)))

ただし call-interactively は使わないほうが行儀が良い気がする。
0552名無しさん@お腹いっぱい。2012/01/06(金) 17:21:25.66
Emacs 用バイブコントローラ
http://www.youtube.com/watch?feature=player_detailpage&v=D1sXuHnf_lo#t=78s
0553名無しさん@お腹いっぱい。2012/01/06(金) 17:31:06.54
sdic が独自のポップアップ表示してるせいで popwin 管理下に置けなくてストレスMAX
0554名無しさん@お腹いっぱい。2012/01/06(金) 17:45:38.45
>>553
ほれ

;; popwin 管理下におく
(add-to-list 'popwin:special-display-config `(,sdic-buffer-name))

;; sdic-display-buffer 書き換え
(defadvice sdic-display-buffer (around sdic-display-buffer-normalize activate)
"sdic のバッファ表示を普通にする。"
(let ((p (or (ad-get-arg 0)
(point))))
(and sdic-warning-hidden-entry
(> p (point-min))
(message "この前にもエントリがあります。"))
(goto-char p))
(display-buffer (get-buffer sdic-buffer-name)))
0555名無しさん@お腹いっぱい。2012/01/06(金) 17:53:07.75
>>554
ありがとでも sdic-describe-word-at-point がちょっと変な気がする
0556名無しさん@お腹いっぱい。2012/01/06(金) 17:59:14.72
>>555
ほれ。あとちょっと挙動違ってた部分もついでになおした。

;; sdic-display-buffer 書き換え
(defadvice sdic-display-buffer (around sdic-display-buffer-normalize activate)
"sdic のバッファ表示を普通にする。"
(setq ad-return-value (buffer-size))
(let ((p (or (ad-get-arg 0)
(point))))
(and sdic-warning-hidden-entry
(> p (point-min))
(message "この前にもエントリがあります。"))
(goto-char p)
(display-buffer (get-buffer sdic-buffer-name))
(set-window-start (get-buffer-window sdic-buffer-name) p)))
0557名無しさん@お腹いっぱい。2012/01/06(金) 18:14:46.00
追加。閉じる時の変なチラチラも消える。


(defadvice sdic-other-window (around sdic-other-normalize activate)
"sdic のバッファ移動を普通にする。"
(other-window 1))

(defadvice sdic-close-window (around sdic-close-normalize activate)
"sdic のバッファクローズを普通にする。"
(bury-buffer sdic-buffer-name))
0558名無しさん@お腹いっぱい。2012/01/06(金) 18:20:47.72
>>554
>(add-to-list 'popwin:special-display-config `(,sdic-buffer-name))

(add-to-list 'popwin:special-display-config `(,sdic-buffer-name ,sdic-window-height))
に直したら大分良くなった
0559名無しさん@お腹いっぱい。2012/01/06(金) 18:21:28.63
ミスった
(add-to-list 'popwin:special-display-config
`(,sdic-buffer-name :height ,sdic-window-height))
0560名無しさん@お腹いっぱい。2012/01/06(金) 18:33:53.57
ありがてえ・・・
0561名無しさん@お腹いっぱい。2012/01/06(金) 19:08:58.15
速攻でコード書いてくれて凄腕って思うだろ?
こいつらみんな無職なんだぜ……
05625452012/01/06(金) 19:46:26.97
>>548
ありがとうございます。確認してみました。

(define-generic-mode 'my-mode
'(";")

こういう書き出しではじまるgeneric-modeで
;の出力される位置は行頭行末とも適切だとわかったのですがただ行頭が;;になりません
普通generic-modeでこう設定すると行頭は;;となるのでしょうか
0563名無しさん@お腹いっぱい。2012/01/06(金) 20:19:12.42
>>562
emacs-lisp-mode みてみたら、どうやら
comment-add って変数で ; の数を制御しているみたい。
モードのセットアップしてるところで
(setq (make-local-variable 'comment-add) 1) ってやってみて。
0564名無しさん@お腹いっぱい。2012/01/06(金) 20:19:20.55
ここがサポート掲示板か
0565名無しさん@お腹いっぱい。2012/01/06(金) 20:20:28.45
まちがった
setq じゃなくて set ね
0566名無しさん@お腹いっぱい。2012/01/06(金) 20:23:51.57
にわかはるびきちが引き取れって言ってるだろうが!!
05675452012/01/06(金) 20:28:48.11
>>563
ありがとうございます。意図した通りの結果が出てきました!
0568名無しさん@お腹いっぱい。2012/01/06(金) 20:31:57.02
きちぼんは誰かに献本されなかったのだろうか。
思うにあいつかなりドケチだよな。
0569名無しさん@お腹いっぱい。2012/01/06(金) 20:41:56.80
書店が献本したがレビューが後回しにされてる
http://d.hatena.ne.jp/rokujyouhitoma/20110816/1313468638

lispじゃなくて普通の方だな
05705392012/01/06(金) 21:11:16.68
>>542-543 >>551
ありがとうございます。save-match-data の使い方を勉強します。

>>541
説明が不足でした。重複している処理なので
whileのたぐいで一度だけ書けばどうにかならないかと悩んでいました。
書き方は再帰でもloopでもかまいませんでした。
0571名無しさん@お腹いっぱい。2012/01/06(金) 21:23:48.68
>>570
save-match-data は >>542 が string-match 使った時に混入しただけで
search-forward 使う分には入れる必要ないかと。
0572名無しさん@お腹いっぱい。2012/01/07(土) 00:03:43.68
あとは bf-mode が popwin 対応すればもう勝利は目前だな。
0573名無しさん@お腹いっぱい。2012/01/07(土) 00:07:29.32
必死でアピールしてるな。
0574名無しさん@お腹いっぱい。2012/01/07(土) 00:30:53.33
bf-modeみたいなメンテナのはっきりしないelispは埋もれていく定め
0575名無しさん@お腹いっぱい。2012/01/07(土) 01:04:50.46
もしかして eval-after-load の中のフォームってバイトコンパイルされなかったりする?
0576名無しさん@お腹いっぱい。2012/01/07(土) 01:23:09.55
てst
0577名無しさん@お腹いっぱい。2012/01/07(土) 10:32:37.89
Android 版ありますか?
0578名無しさん@お腹いっぱい。2012/01/07(土) 10:42:25.69
iOS版は確かあったけどAndroid版はまだじゃないかなあ
と思ったら一応出来ないことはないみたい

http://www.emacswiki.org/emacs/EmacsOnAndroid
0579名無しさん@お腹いっぱい。2012/01/07(土) 11:44:15.55
emacs から emacs を立ち上げれば
elisp だけでの並列プログラミングが実現出来るんじゃないか?
マルチスレッドじゃなくマルチプロセスだけど。
0580名無しさん@お腹いっぱい。2012/01/07(土) 11:46:26.85
Androidのバージョンとか不明ですが
Emacs for Android
ttp://d.hatena.ne.jp/MATSUZAKI/20101104/1288882148
0581名無しさん@お腹いっぱい。2012/01/07(土) 12:25:49.29
>>579
emacs24からはポート指定でサーバ立ち上げられるし
server-eval-at なんてのも追加されてるからあながち間違ったアプローチじゃないとおもう。
0582名無しさん@お腹いっぱい。2012/01/07(土) 14:14:17.26
replace-regexpについて質問します
このようなテキストがあるところで

akasatana
hamayarawa
ikisitini

「元のテキスト 元のテキスト」のようにテキストを複製するかのような処理を
正規表現の置換で行いたいのですがうまくいきません
置換対象の文字列検索はre-builderでは大丈夫でした

replace-regexp [ret]
\\(.+\\) [ret]
\\1 \\1 [ret]

何を修正すればよいのでしょうか
0583名無しさん@お腹いっぱい。2012/01/07(土) 14:21:09.16
\ を \\ と書く時ってのはどういう理由でそれが必要だったのか考え直せ
0584名無しさん@お腹いっぱい。2012/01/07(土) 14:39:22.04
emacs の正規表現はもうちょっとなんとかならんのかと常々思うわ。
0585名無しさん@お腹いっぱい。2012/01/07(土) 15:03:07.77
似たような問題はどんな言語いじっててもあるからね。
■ このスレッドは過去ログ倉庫に格納されています