元スレEmacs part 26
emacs覧 / PC版 /みんなの評価 : ○
601 = :
(buffer-modified-p), buffer-read-only
を見て,動的にモードラインの色を変更することって可能?
'mode-line-modified みたいな設定ってある?
603 = :
こんなの使っている。
(defun sdic-describe-word-at-point-or-region (&optional arg)
"Display the meaning of word at the point or in the region."
(interactive "P")
(require 'sdic)
(let ((func (when arg (sdic-select-search-function)))
(word (or (and mark-active
(buffer-substring-no-properties
(region-beginning) (region-end)))
(sdic-read-from-minibuffer nil "SDIC"))))
(sdic-describe-word word func)))
604 = :
>>601
(setq-default mode-line-format
(append
mode-line-format
'((:eval (set-face-background 'mode-line (if (buffer-modified-p) "red" "green"))))))
とか書いてみたけど、どんなものか。
605 = :
>>604
Thx m(_ _)m
そうか、(append mode-line-format '(hogehoge
で良かったんやね。
おいらはは mode-line-format をそのままコピーして、さっきやってた orz
もっと elisp を勉強せねばー。
606 = :
ところで、なんで Emacs Lisp は EL じゃなくて Elisp と略されるんだろう。
公式には Elisp という表現は避けられてるし
EL という名称は一般化してないし。Emacs Lisp と書くしかない時とかなんか微妙に困る。
607 = :
>>605
>>604だけど、
(append
'((:eval (set-face-background 'mode-line (if (buffer-modified-p) "red" "green"))))
mode-line-format))
のほうが良かったかも。適当に作ったものなので好きなように変えてください。
608 = :
:evalってどんなタイミングで評価されてるんだろうか。
毎秒数千回とか評価されるわけもないだろうけど、
毎秒一回って事もない気がする。
609 = :
>>608
interactive にバッファが編集された場合か (force-modeline-update) された場合じゃないの?
610 = :
mode-line-format とかに :eval な要素があったら、
それが何に反応するかを分析してるってこと?
あるいは、バッファの状態によらずに
たとえばprocessの状態を反映するようなものが
:eval に登録されていても、
その条件とは無関係に、とりあえずバッファが編集された
(interactiveな操作があった) 時に評価されるの?
611 = :
>>610
infoくらい嫁よ
612 = :
>>606
なんで困るの?
613 = :
>Allegedly optional lexical scoping is coming after Emacs 23 is
>released. (according to emacs-devel) Once it’s in place, adding
>coroutines will be feasible, which addresses the “single-threading
>sucks” argument that’s surprisingly absent on this page. Should also
>make closures possible.
でEmacs23のリリースはいつになるんだ?って話だよな
614 = :
ここまでいったけど…,一つ問題点があった.
初期フレームのみにしか反映されず,
新規フレームのバッファー変更に対応してくれない.
それどころか,初期フレームの mode-line の色を
そのまま新規フレームにも反映してしまう.
どうにかならないだろうか?
(setq-default mode-line-format
(append
'((:eval
(let ((modifd (buffer-modified-p))
(rdonly buffer-read-only))
(set-face-background 'mode-line
(cond
((and (not modifd) (not rdonly)) "grey75") ;; "--"
((and modifd (not rdonly)) "orange red") ;; "**"
((and (not modifd) rdonly) "grey75") ;; "%"
((and modifd rdonly) "orange red") ;; "##"
)))))
mode-line-format))
615 = :
> どうにかならないだろうか?
各バッファーでそれぞれ色が変わってくれないだろうか?
ということです.m(_ _)m
616 = :
>>615
mode-line の background-color をいじるんじゃなくて、mode-line-format が
返す文字列に background-color の property を付加するべきじゃ?
617 = :
起動時に自動的にviper-modeに移行する方法は無いでしょうか?
vimを使い慣れているのですがEmacsの素晴らしい多機能性や
高度なインデントはプログラミングには必要不可欠です。
そのためvimのキーバインドでEmacsの機能を活用できるViper-modeで起動できる
方法が有ればよろしくお願いします。
618 = :
viper-mode起動した時に自動的にやるかどうか質問が出るはずだけど?
viper-modeだけじゃvimの機能完全に網羅してないよ。
viの機能+emacsの機能は使える。
vimのvisual mode的な操作がしたいなら
transient-modeとか利用して自分で作る必要があるね。
619 = :
abbrev モードに入る時のフック 'pre-abbrev-expand-hook に 関数 hoge を加えるという設定を
ローカルバッファ固有にしたいのですが
make-local-variable には -hook とつくものは設定してはダメと書いてありました。
(add-hook 'text-mode-hook (lambda ()
; (make-local-variable 'pre-abbrev-expand-hook)
(add-hook 'pre-abbrev-expand-hook 'hoge)))
これだとすべてのバッファで hoge が動いてしまいます。
どのようにしたらよいでしょうか。
お知恵をお貸しください。
620 = :
フックの中でフラグ変数を見てhogeを実行するかどうか考えるようにして、
そのフラグをbuffer-localでも何にでもすりゃいいじゃん?
621 = :
>>619
(add-hook 'text-mode-hook
(lambda ()
;; Do not use `make-local-variable' to make a hook variable
;; buffer-local. Instead, use `add-hook' and specify t for the
;; LOCAL argument.
;; (make-local-variable 'pre-abbrev-expand-hook)
(add-hook 'pre-abbrev-expand-hook 'hoge nil t)))
かな?
622 = :
>>617
(info "(viper)Loading Viper") に書いてある。
下の2行を~/.emacsに書く。
--
(setq viper-mode t)
(require 'viper)
--
>>618
最初に聞かれるのは、
viper-inhibit-startup-messageとviper-expert-level
じゃないか?
vim っぽくしたいなら、
http://www.emacswiki.org/cgi-bin/wiki/vimpulse.el
http://www.geocities.jp/emacsjjjj/viper/
ここいらへんを、参考に。
623 = :
>>620-621
お手数をおかけして申し訳ありません。
add-hook の引数の意味をきちんと理解できていませんでした。
>>621 の式で期待通りの動作をするようになりました。
どうもありがとうございました。
624 = :
>>470
scim-bridge.el version 0.7.0 リリース
遅くなりましたが、カーソルの色を変えられるようにしました。
(setq scim-cursor-color "red")
これで、SCIMがオンの時にカーソル色が赤になります。オフ時の色も指定
したい場合はコンスセルで指定します。例えば
(setq scim-cursor-color '("red" . "blue"))
とすると、オンで赤、オフで青になります。
GUIセットアップユーティリティーでSCIMの設定を変更すると、実際の状態と
カーソル色が合わなくなりますが、気にせず使っていればそのうちに直ります。
626 = :
>>614
mode-line-format の中の :eval は表示している全てのバッファについて評価
されるから、選択しているウインドウとは関係なく最後に評価したバッファで
色が決まっちゃいますよ。
(add-hook 'post-command-hook
(lambda ()
(with-current-buffer (window-buffer (selected-window))
(let ((modifd (buffer-modified-p))
(rdonly buffer-read-only))
(set-face-background 'mode-line
(cond
((and (not modifd) (not rdonly)) "grey75") ;; "--"
((and modifd (not rdonly)) "orange red") ;; "**"
((and (not modifd) rdonly) "grey75") ;; "%"
((and modifd rdonly) "orange red") ;; "##"
))))))
でいいと思うけど。
627 = :
あっ with-current-buffer は要らないか。
(add-hook 'post-command-hook
(lambda ()
(let ((modifd (buffer-modified-p))
(rdonly buffer-read-only))
(set-face-background 'mode-line
(cond
((and (not modifd) (not rdonly)) "grey75") ;; "--"
((and modifd (not rdonly)) "orange red") ;; "**"
((and (not modifd) rdonly) "grey75") ;; "%"
((and modifd rdonly) "orange red") ;; "##"
)))))
これでいけますね。
629 = :
~/
630 = :
jdeeについての質問です。
Meadow3(r4242)で、コンパイルするとjavacの出力メッセージが化けて出てきます。
http://www.02.246.ne.jp/~torutk/jdee/jdee.html#doc1_id654
の (setq bsh-vm-args "Duser.language=en")
を設定しても現象は変わりません。何か設定が足りないのでしょうか?
631 = :
>>624
久々のVer.upですね。さっそく使わせていただいております。
ありがとうございます。
カーソルの色の変更、きちんとできています。
633 = :
違った、こうかな?
(setq bsh-vm-args '("-Duser.language=en"))
634 = :
>>629
Cドライブのしたってこと?
635 = :
>>627
irie 氏、激しく感謝です m(_ _)m
そして、scim-bridge.el version 0.7.0 release、お疲れさまです。
こちらも大変便利に利用しております。
636 = :
>>634
マニュアルを読むといいよ。
(info "(emacs)Init File") ;*scratch*バッファで評価
http://www.bookshelf.jp/texi/emacs-man/21-3/jp/emacs_34.html#SEC497
637 = :
>>633
> 違った、こうかな?
> (setq bsh-vm-args '("-Duser.language=en"))
あ、そうでした。すみません。
しかし、check styleだと文字化けしてしまいます。回避方法ありますかねぇ。
638 = :
>>637
jdeeを使ったことがないのでよくわかんないけど、
(add-hook 'java-mode-hook (lambda() (setenv "LC_ALL" "en")))
とか?(ttp://sakito.jp/moin/moin.cgi/JDEE より)
641 = :
>>638
> >>637
> jdeeを使ったことがないのでよくわかんないけど、
>
> (add-hook 'java-mode-hook (lambda() (setenv "LC_ALL" "en")))
>
> とか?(ttp://sakito.jp/moin/moin.cgi/JDEE より)
それもやったんですが、駄目でした。うーむ。
643 = :
mcompleteを使っているとcolor-themeで設定したテーマによっては補完文字が
見づらくなってしまいます。
(copy-face 'highlight 'mcomplete-prefix-method-fixed-part-face)
(copy-face 'highlight 'mcomplete-prefix-method-alternative-part-face)
を評価するとちょうといい感じになるのですが、.emacs.elに書くだけでは駄目
みたいです。***-hooksとかに引っかける必要があるんでしょうか。
どなたかご教示いただけると助かります。
644 = :
trampを使って接続先のファイルをいじろうとしたとき
そのファイルがsvn管理下にあると、つまり.svnが同ディレクトリにあるとき
Couldn't parse output from `svn status -v'
といわれて開けません、もう一度開こうとすると開くことはできるのですが
保存しようとするとやっぱり
Couldn't parse output from `svn status -v'
といわれて保存できません
645 = :
>>644
そりゃtrampじゃなくてvcがエラー出してるんだろ。
まぁ、vcの挙動は確かに変だよね。
646 = :
>>643
「書くだけでも駄目」ってのは、
書いても書く前と変わらないのか、
あるいは結果がちょっと違うのか、どっちだろう。
(require 'mcomplete)
(set-face-foreground 'mcomplete-prefix-method-fixed-part-face "orange")
(set-face-foreground 'mcomplete-prefix-method-alternative-part-face "orange")
(turn-on-mcomplete-mode)
この順番でどう?
647 = :
>>646
ありがとうございます。
「書くだけでは駄目」というのは.emacs.elに書く前と結果が変わらない
という意味でした。>>646のコードでうまく表示が変わったのでとりあえずは
これを使ってみます。.emacs.elにcopy-faceを書いても順番関係なく無効
みたいです。
648 = :
>>636
どこに.emacsおけばいいかわかったわ
ありがとう
ソフト起動しただけでは.emacsできないのね
650 = :
>>645
vcの動作を止められないですか?
接続先の特定ディレクトリだけ
みんなの評価 : ○
類似してるかもしれないスレッド
- Emacs part 22 (1001) - [92%] - 2008/1/18 7:47 ○
- Emacs part 28 (605) - [92%] - 2009/3/25 0:37 ○
- Emacs part 27 (1001) - [92%] - 2009/1/23 18:47 ○
- Emacs part 25 (1001) - [92%] - 2008/8/10 0:18 ○
- Emacs part 23 (1001) - [92%] - 2008/2/8 0:04 ☆
- Emacs Part 36 (1001) - [84%] - 2011/3/1 5:02
- Emacs Part 46 (984) - [84%] - 2014/12/24 14:15
- Emacs part24 (991) - [84%] - 2008/5/10 5:08 ○
- Emacs Part 47 (995) - [76%] - 2015/4/19 13:01
- Emacs Part 41 (1001) - [76%] - 2012/12/24 4:15
- Emacs Part 37 (1001) - [76%] - 2011/6/20 19:47
- Emacs Part 38 (1001) - [76%] - 2011/11/29 0:01
- Emacs Part 39 (990) - [76%] - 2012/2/9 19:45
トップメニューへ / →のくす牧場書庫について