しょぼしょぼすくりぷと xyzzy編 > ツール/ゲーム ジョークライブラリ集 > スムーススクロール ツール

スムーススクロール ツール

xyzzyにスムーズなスクロール機能を追加します

概要

xyzzyにマウスやpageDownでスムーズなスクロール機能を提供します

機能

急な動きを極力抑えて、スムーズなwindowスクロールを実現します。

画面が急に変わるような雑な動きはなく、たくさん移動したいときは速く、スクロール終了間際はゆっくりスクロールします。

FireFox アドオンの 「Yet Another Smooth Scrolling」に近いです。

影響

mouse-wheel-handlerの設定を置き換えます。

default:mouse-wheel-scroll
↓ ↓ ↓
このツール: my-mouse-scroll

依存関係

xyzzyの標準機能で大丈夫なはず

バッティング

ホイール スクロール系の lispをいれている人はこの変数をチェックしてみてください。 使っていたらバッティングするので、うまくラッピングしてください。

mouse-wheel-handler

この標準モジュールが上書きするもの

"page"モジュール "editor"パッケージ next-page

ブルって止まらないとき、なんかスクロールしないとき

M-x smooth-scroll-reset
と押すと情報がリセットされて止まるはず

一応limitやチェック機構を付けています。

設定

site-lisp/配下に .lファイルを置き .xyzzy に (lood-library "smooth-scroll.l")とするだけ。 あとはホイールでスクロールしてみてください。

カスタマイズ可能変数

*scroll-smoothly-property-list*
デフォルトでは4つ設定パターンリストが定義されています。
それぞれのリストの中の意味は以下のとおり

;1.スムースに動かす頻度(sec) 小さいほどちょこまか
;2.スクロール量分解数   大きいほどちょこまか
;3.スムースに動かす初動幅   小さいほどちょこまか
;4.スムースに動かす最終幅(最後にカチッとなる)   小さいほどちょこまか 
;5.ラベル (お好きなように)
;端っこに来たときバウンスさせるかどうか
(defvar *scroll-smoothly-bounce* t)

;マウス加速率  n倍
(defvar *scroll-smoothly-accel* 1)

キーによるスクロール(置き換え)

以下の"page"モジュールを置き換えると C-v , M-v , PageDown ,PageUpもスムースになります。
ed::next-page : 置き換えいらない人は消しちゃってください。

ソース

smooth-scroll.l

ひとこと

●アンインストール とりあえず、一般的な削除以外では

以下のスクロールの設定を戻しておいてください。
(setq-default mouse-wheel-handler 'mouse-wheel-scroll )

履歴

2010/08/11 公開

しょぼしょぼすくりぷと xyzzy編 | ツール/ゲーム ジョークライブラリ集