2009年10月29日の日記の1番目の記事へのコメント

uim.elとEmacs23

Emacsでウィンドウを複数に分割して同じバッファを表示させた状態とし,片方のウィンドウで何か文字を入力した場合,もう片方のウィンドウは勝手にスクロールしたりせず元の位置のまま・・・というのが本来期待される動作なはずなんですが,Emacs23 + uim.el でこれをやると片方のウィンドウで入力した瞬間にもう片方のウィンドウがスクロールして同じ内容を表示するようになっちゃいます.こいつは片方でバッファの上の方を見たりしながら,もう片方でバッファの下の方に追記したい場合とかにものすごく不便です.

というわけで調べてみました.どうも uim-util.el にある以下の関数が期待したように動いていないのが原因っぽい.

(defun uim-goto-char (pt)
  (set-window-point (get-buffer-window (current-buffer)) pt))

Emacs23だと set-window-point がおかしいのかなーと思ったんですが,実験してみたところ set-window-point ではなく get-buffer-window が返してくるウィンドウの方がおかしいっぽいことが判明.たとえば以下を実行すると,本来なにも起こらないはずが隣のウィンドウに飛んじゃいますw

(select-window (get-buffer-window (current-buffer)))

うー,どうしたもんか.というかそもそも何でこんな複雑なことやってんだっけ・・・?普通に (goto-char pt) にしても動くんだよなぁw

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2009年10月29日の日記の1番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2009年10月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ