私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレEmacs Part 43
emacs スレッド一覧へ / emacs とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
>>949
それだと cond が評価されない気がする
(defmacro if-on-compile (cond &rest form)
(when (eval cond) `(progn ,@form)))
それだと cond が評価されない気がする
(defmacro if-on-compile (cond &rest form)
(when (eval cond) `(progn ,@form)))
(when (locate... をそれに全部置き換えて eval-when-compile を駆使しまくった結果・・・・
emacs-init-time が 0.9 から 0.8 になった
すげえ虚しい
修正に10分くらいはかかってそうだから 6000回 は emacs を起動しないと元が取れない
emacs-init-time が 0.9 から 0.8 になった
すげえ虚しい
修正に10分くらいはかかってそうだから 6000回 は emacs を起動しないと元が取れない
emacsの起動時間が0.5秒を超えている奴は起動するたびに人生を無駄使いしていると悟るべき。
俺も再起動は滅多にしないな
するとしたらOSをリブートしたときとかinit.el関連を書き換えたときくらいかな
強制終了するまでは起動しっぱなしだわ
するとしたらOSをリブートしたときとかinit.el関連を書き換えたときくらいかな
強制終了するまでは起動しっぱなしだわ
navi2ch とか wanderlust とか twittering-mode を使わなくなったら
わりと頻繁に終了させるようになった。
わりと頻繁に終了させるようになった。
shell-mode で exit した時にバッファやウィンドウも閉じて欲しいんですがどのようにしたらいいんでしょうか?
それっぽいフックがないか探したのですが見当たりませんでした。
それっぽいフックがないか探したのですが見当たりませんでした。
自己解決しました。
ぐぐったら 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))))))
ぐぐったら 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))))))
しかし最新のCPUにしてもEmacsは重く感じる…
光速を越える事が出来ないように、Emacsが軽くなることは永遠にないんだろうね。
光速を越える事が出来ないように、Emacsが軽くなることは永遠にないんだろうね。
>>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))))
)
(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))))
)
add-hook とか設定を書き換えたときに
設定を有効にするにはどうしたらいいの
再起動するしかないかな
設定を有効にするにはどうしたらいいの
再起動するしかないかな
例えば local-set-key とか書き換えて評価しても
反映されないんだけど
反映されないんだけど
(local-set-key (kbd "<f11>") "hello")
これを scratch バッファで eval-last-sexp で評価して f11 押して hello ってはいらんのなら
なんか余計な設定してるんだろ
これを scratch バッファで eval-last-sexp で評価して f11 押して hello ってはいらんのなら
なんか余計な設定してるんだろ
add-hook は run-hooks とかで実行されない限り有効にならんから
たとえば c-mode-hook になんか追加してもすでに c-mode になってるバッファでは何も起きないよ。
ファイル開き直すなり再度 c-mode にし直すなりしないと run-hooks が働かない。
local-set-key はしらん。目的のバッファじゃなくて init.el 開いてるバッファで eval してるってオチじゃないの。
たとえば c-mode-hook になんか追加してもすでに c-mode になってるバッファでは何も起きないよ。
ファイル開き直すなり再度 c-mode にし直すなりしないと run-hooks が働かない。
local-set-key はしらん。目的のバッファじゃなくて init.el 開いてるバッファで eval してるってオチじゃないの。
>>976
具体的に。
具体的に。
local-set-key のやつは
ファイル開き直すのでうまくいきました
以前にどうやってもうまく行かないケースがあって
質問しようと思ってたのを忘れてしまった
どうもありがとう
ファイル開き直すのでうまくいきました
以前にどうやってもうまく行かないケースがあって
質問しようと思ってたのを忘れてしまった
どうもありがとう
Emacsでテキストをマウスクリック、またはテキスト上でEnterし特定の関数を実行させたいです。
set-text-properties等でイベント別に実行させたりできるのでしょうか?
または別に専用の関数等あるのでしょうか?
set-text-properties等でイベント別に実行させたりできるのでしょうか?
または別に専用の関数等あるのでしょうか?
>>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
あたり参考に。
お察しの通り、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
あたり参考に。
そりゃ見た目にハデで効率あがるのも認めるけど
やってることはマークと正規表現とquery-replaceを縦横に使いこなすっつー
emacs使いにとっちゃ息をするほどの操作と同じことだろ
やってることはマークと正規表現とquery-replaceを縦横に使いこなすっつー
emacs使いにとっちゃ息をするほどの操作と同じことだろ
emacs使いっていうか大抵のエディタ使ってる奴はそれぐらいのことするわな。
multiple-cursor ってなんかズレたらどうしようってイメージしかないんだよな
multiple-cursor ってなんかズレたらどうしようってイメージしかないんだよな
もちろん普通のEmacserは関数内とかでC-M-hでリージョン選択してquery-replaceをするだろうね
それとC-x r tかな
ただ、インパクトは凄いんで multiple-cursor を暫く使ってみる事にするよ
それとC-x r tかな
ただ、インパクトは凄いんで multiple-cursor を暫く使ってみる事にするよ
cua といえば C-S-space の cua-toggle-global-mark ってあんまり使われてなさそう
>>990
cuaモードを使ってるけど、cua-toggle-global-markは使ったことなかった。
今使ってみたけどあらかじめペースト先を指定しておく位の使い方しか分からなかった。
何か便利な使い方があったら教えてくれ。
cuaモードを使ってるけど、cua-toggle-global-markは使ったことなかった。
今使ってみたけどあらかじめペースト先を指定しておく位の使い方しか分からなかった。
何か便利な使い方があったら教えてくれ。
連番を指定回数分バッファに出力する何かいい方法はないでしょうか
1
2
3
4
5
こういう風に各行に一つずつ出したいです
1
2
3
4
5
こういう風に各行に一つずつ出したいです
>>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にしたいと思ったのですが、やり方が分かりませんでした。
ありがとうございます。その関数を使えばリージョンの各行に数値を挿入できることを確認しました。
ですが指定した個数を挿入することはできないようです。
(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にしたいと思ったのですが、やり方が分かりませんでした。
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- Emacs Part 40 (1001) - [92%] - 2012/9/7 0:30
- Emacs Part 47 (995) - [92%] - 2015/4/19 13:01
- Emacs Part 42 (1001) - [92%] - 2013/6/9 5:15 △
- Emacs Part 44 (1001) - [92%] - 2014/2/8 8:01 △
- Emacs Part 53 (989) - [92%] - 2022/12/5 12:45
- Emacs Part 46 (984) - [92%] - 2014/12/24 14:15
- Emacs Part 45 (1001) - [92%] - 2014/6/23 9:45
- Emacs Part 48 (997) - [92%] - 2015/12/9 15:15
- Emacs Part 49 (974) - [92%] - 2016/12/7 9:45
- Emacs Part 33 (1001) - [92%] - 2010/3/9 20:01 ○
- Emacs Part 41 (1001) - [92%] - 2012/12/24 4:15
- Emacs Part 32 (1001) - [84%] - 2009/12/20 2:04 ○
- Emacs Part 31 (1001) - [84%] - 2009/10/23 10:31 ○
- Emacs part 23 (1001) - [84%] - 2008/2/8 0:04 ☆
トップメニューへ / →のくす牧場書庫について