のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,540,108人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレEmacs Part 43

emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitter
951 : 名無しさん@お腹 - 2013/12/08(日) 11:21:30.61 (+3,-19,+0)
すまん#.使えないやん
952 : 名無しさん@お腹 - 2013/12/08(日) 12:06:16.44 (+3,-30,-55)
>>949
それだと cond が評価されない気がする
(defmacro if-on-compile (cond &rest form)
(when (eval cond) `(progn ,@form)))
953 : 名無しさん@お腹 - 2013/12/08(日) 12:37:34.71 (+36,-30,-84)
(when (locate... をそれに全部置き換えて eval-when-compile を駆使しまくった結果・・・・
emacs-init-time が 0.9 から 0.8 になった

すげえ虚しい
修正に10分くらいはかかってそうだから 6000回 は emacs を起動しないと元が取れない
954 : 名無しさん@お腹 - 2013/12/08(日) 13:30:22.30 (+5,-22,-26)
emacsの起動時間が0.5秒を超えている奴は起動するたびに人生を無駄使いしていると悟るべき。
955 : 名無しさん@お腹 - 2013/12/08(日) 15:27:05.37 (+57,+29,-3)
emacsなんて一週間以上そのまま使い続けたりするし
956 : 名無しさん@お腹 - 2013/12/08(日) 15:36:26.12 (+1,-26,-55)
俺も再起動は滅多にしないな
するとしたらOSをリブートしたときとかinit.el関連を書き換えたときくらいかな
強制終了するまでは起動しっぱなしだわ
957 : 名無しさん@お腹 - 2013/12/08(日) 16:02:39.75 (-1,-29,-9)
navi2ch とか wanderlust とか twittering-mode を使わなくなったら
わりと頻繁に終了させるようになった。
958 : 名無しさん@お腹 - 2013/12/08(日) 16:29:26.42 (-1,-29,-16)
shell-mode が快適すぎて終了させる気にならない
959 : 名無しさん@お腹 - 2013/12/08(日) 16:49:43.64 (+22,+0,+0)
がんがん再起動するけど
960 : 名無しさん@お腹 - 2013/12/08(日) 16:55:47.17 (+96,+29,-29)
>>953
君にとっては小さな0.1秒でも、
1000年後、2000年後の子孫にとっては貴重な100時間になるかもしれない。
これこそが俺達がパフォーマンスチューニングをする最大の理由なんだ。
961 : 名無しさん@お腹 - 2013/12/08(日) 17:06:54.96 (-1,-29,-2)
emacs-uptime が 8時間こえたことない。たぶん。
962 : 名無しさん@お腹 - 2013/12/08(日) 17:08:10.01 (-2,-30,-30)
self-insert-command の処理時間短縮に成功したなら誇っていい
963 : 名無しさん@お腹 - 2013/12/08(日) 17:29:32.30 (+8,-29,-24)
shell-mode で exit した時にバッファやウィンドウも閉じて欲しいんですがどのようにしたらいいんでしょうか?
それっぽいフックがないか探したのですが見当たりませんでした。
964 : 963 - 2013/12/08(日) 17:50:04.03 (+3,-30,-160)
自己解決しました。
ぐぐったら process-sentinel に設定してる例があったのでそれを参考に作ってみました。
(add-hook 'shell-mode-hook
(lambda ()
(set-process-sentinel (get-buffer-process (current-buffer))
(lambda (process event)
(let* ((buf (process-buffer process))
(win (get-buffer-window buf)))
(when (and win (not (one-window-p)))
(delete-window win))
(kill-buffer buf))))))
965 : 名無しさん@お腹 - 2013/12/08(日) 23:51:05.87 (+70,+29,-42)
>>960
パフォーマンスチューニングする時間にプログラム書いて金に変え、cpuスペックを2倍にした方が合理的。
あるいは、複数端末にして使い分けるとか。
966 : 名無しさん@お腹 - 2013/12/09(月) 22:54:55.89 (+91,+29,-41)
しかし最新のCPUにしてもEmacsは重く感じる…
光速を越える事が出来ないように、Emacsが軽くなることは永遠にないんだろうね。
967 : 名無しさん@お腹 - 2013/12/09(月) 23:01:05.03 (+36,-29,-5)
一昔前のノートPCでemacs24.3だけど軽いよ
968 : 名無しさん@お腹 - 2013/12/09(月) 23:39:12.96 (+68,+29,-28)
>>966
うはw
>>967 の報告で話盛ったのが即バレしてるww
だっさー
969 : 名無しさん@お腹 - 2013/12/10(火) 04:15:12.92 (+0,+0,+0)
>>941のだと grep とかの compilation-start を使う他の関数まで影響が出るので書き換えた
(dolist (func '(compile recompile))
(eval `(defadvice ,func (around ,(intern (format "%s-silently" func)) activate)
"エラー発生時のみ *compilation* バッファ表示"
(cl-letf (((symbol-function 'display-buffer) 'ignore)
((symbol-function 'set-window-start) 'ignore)
((symbol-function 'set-window-point) 'ignore))
(let (compilation-start-hook) ; local hook ではなく compile のみの hook
(add-hook 'compilation-start-hook
(lambda (proc)
(make-local-variable 'compilation-finish-functions)
(add-hook 'compilation-finish-functions
(lambda (buffer msg)
(with-current-buffer buffer
(font-lock-mode -1)
(font-lock-fontify-buffer)
(font-lock-mode 1)
(if (or (not (string-match "finished" msg))
(text-property-not-all (point-min) (point-max)
'compilation-message nil))
(display-buffer buffer)
(when (get-buffer-window buffer)
(delete-window (get-buffer-window buffer))))))
)))
ad-do-it))))
)
970 : 名無しさん@お腹 - 2013/12/11(水) 10:11:26.40 (+52,+29,-2)
ゴミはってんじゃねえよ
971 : 名無しさん@お腹 - 2013/12/11(水) 18:53:48.05 (+18,-29,-32)
add-hook とか設定を書き換えたときに
設定を有効にするにはどうしたらいいの
再起動するしかないかな
972 : 名無しさん@お腹 - 2013/12/11(水) 19:03:51.74 (+8,-29,-3)
add-hookしたらすぐ有効なんじゃね?
973 : 名無しさん@お腹 - 2013/12/11(水) 19:10:21.42 (-4,-29,-43)
eval-region したり eval-last-sexp したりすればいいのでは。
974 : 名無しさん@お腹 - 2013/12/11(水) 19:16:04.18 (-1,-29,-5)
>>972 >>973
どうもうまくいかないのさ
みんなうまくいってるの

global-set-key とかならうまくいくけども
975 : 名無しさん@お腹 - 2013/12/11(水) 19:37:29.60 (+52,+29,+0)
言葉が足りてない気がする。
976 : 971 - 2013/12/11(水) 19:42:05.14 (+21,-29,-20)
例えば local-set-key とか書き換えて評価しても
反映されないんだけど
977 : 名無しさん@お腹 - 2013/12/11(水) 19:53:45.41 (-4,-30,-43)
(local-set-key (kbd "<f11>") "hello")

これを scratch バッファで eval-last-sexp で評価して f11 押して hello ってはいらんのなら
なんか余計な設定してるんだろ
978 : 名無しさん@お腹 - 2013/12/11(水) 19:57:20.85 (+3,-30,-121)
add-hook は run-hooks とかで実行されない限り有効にならんから
たとえば c-mode-hook になんか追加してもすでに c-mode になってるバッファでは何も起きないよ。
ファイル開き直すなり再度 c-mode にし直すなりしないと run-hooks が働かない。

local-set-key はしらん。目的のバッファじゃなくて init.el 開いてるバッファで eval してるってオチじゃないの。
979 : 名無しさん@お腹 - 2013/12/11(水) 23:44:15.71 (+38,+13,+1)
>>976
具体的に。
980 : 971 - 2013/12/12(木) 11:37:11.49 (+5,-22,-25)
local-set-key のやつは
ファイル開き直すのでうまくいきました
以前にどうやってもうまく行かないケースがあって
質問しようと思ってたのを忘れてしまった
どうもありがとう
981 : 名無しさん@お腹 - 2013/12/12(木) 17:12:42.30 (-1,-29,-30)
init.el で eval してたってオチか
982 : 名無しさん@お腹 - 2013/12/12(木) 21:05:21.60 (+9,-30,-74)
Emacsでテキストをマウスクリック、またはテキスト上でEnterし特定の関数を実行させたいです。
set-text-properties等でイベント別に実行させたりできるのでしょうか?
または別に専用の関数等あるのでしょうか?
983 : 名無しさん@お腹 - 2013/12/12(木) 21:22:38.38 (+38,-30,-83)
>>982
お察しの通り、set-text-properties で指定したテキストに対して専用のキーバインドを設定できる。
そこで return なり mouse-1-down なりに好きな関数を設定してやれば ok。

http://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Clickable-Text
http://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Special-Properties

あたり参考に。
984 : 名無しさん@お腹 - 2013/12/12(木) 21:55:15.46 (+63,+29,-15)
>>983
ありがとうございます!
英語は苦手ですが参考にしてやってみます
985 : 名無しさん@お腹 - 2013/12/13(金) 17:58:25.68 (+55,+29,-4)
http://emacsrocks.com/e13.html
やべー凄過ぎて脱糞した
俺もこうなりたい
986 : 名無しさん@お腹 - 2013/12/13(金) 19:17:13.70 (+57,+29,-52)
そりゃ見た目にハデで効率あがるのも認めるけど
やってることはマークと正規表現とquery-replaceを縦横に使いこなすっつー
emacs使いにとっちゃ息をするほどの操作と同じことだろ
987 : 名無しさん@お腹 - 2013/12/13(金) 19:22:31.50 (-1,-29,-25)
emacs使いっていうか大抵のエディタ使ってる奴はそれぐらいのことするわな。
multiple-cursor ってなんかズレたらどうしようってイメージしかないんだよな
988 : 名無しさん@お腹 - 2013/12/14(土) 00:43:18.79 (+3,-30,-54)
もちろん普通のEmacserは関数内とかでC-M-hでリージョン選択してquery-replaceをするだろうね
それとC-x r tかな
ただ、インパクトは凄いんで multiple-cursor を暫く使ってみる事にするよ
989 : 名無しさん@お腹 - 2013/12/14(土) 03:05:44.32 (+4,-23,-3)
cua-mode で満足してたのに、また面白そうなもの教えてくれやがって・・・
990 : 名無しさん@お腹 - 2013/12/14(土) 10:26:26.39 (+4,-30,-28)
cua といえば C-S-space の cua-toggle-global-mark ってあんまり使われてなさそう
991 : 名無しさん@お腹 - 2013/12/14(土) 13:14:07.36 (+57,+29,-4)
代用はあるけど
単純にかっけえなあw
992 : 名無しさん@お腹 - 2013/12/14(土) 14:39:31.77 (+7,-29,-31)
>>990
cuaモードを使ってるけど、cua-toggle-global-markは使ったことなかった。
今使ってみたけどあらかじめペースト先を指定しておく位の使い方しか分からなかった。
何か便利な使い方があったら教えてくれ。
993 : 名無しさん@お腹 - 2013/12/14(土) 16:30:21.76 (+22,-25,-23)
連番を指定回数分バッファに出力する何かいい方法はないでしょうか
1
2
3
4
5
こういう風に各行に一つずつ出したいです
994 : 名無しさん@お腹 - 2013/12/14(土) 16:35:39.39 (+4,-29,-4)
rectangle-number-lines
995 : 名無しさん@お腹 - 2013/12/14(土) 16:46:24.23 (+0,-29,-23)
>>992
ぶっちゃけそれぐらいじゃない?
multiple-cursor みたいにへえーおもしれーって一回触っておわる系。
996 : 名無しさん@お腹 - 2013/12/14(土) 17:32:26.95 (+26,-29,-3)
C-u M-! seq 1 5
997 : 993 - 2013/12/14(土) 17:33:10.84 (+3,-30,-157)
>>994
ありがとうございます。その関数を使えばリージョンの各行に数値を挿入できることを確認しました。
ですが指定した個数を挿入することはできないようです。
(defun test (start end)
(loop for i from start to end do (insert (concat (number-to-string i) "
"))))

(test 1 10)のように始まりと終わりの数値を指定すればそれを一気に挿入するのが理想ですが
そのようなものがあれば知りたいです。

あとlispの書き方でつまずいたのですがdefunの引数に&optionalを指定したとき、デフォルトの値を設定することはできませんか?
上の例だとstartの既定値を1にしたいと思ったのですが、やり方が分かりませんでした。
998 : 993 - 2013/12/14(土) 17:34:22.77 (+60,+29,+0)
>>996
ばっちりです!ありがとうございます!
1000 : 名無しさん@お腹 - 2013/12/14(土) 20:29:30.22 (+2,-15,+0)
おらー!
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について