Firefox で閲覧中の画面を Emacs からスムーススクロールする elisp
こちらの記事に触発されて、Firefox + mozrepl 版を書いてみた。
mozrepl が動く環境であれば Windows でも Linux でも動くと思います。
まだまだ便利な機能は作れそう。
Google Chromeで閲覧中のページをEmacsからスクロールする ※Mac限定
http://d.hatena.ne.jp/ramusara/20110211
ソース
(defvar moz-scroll-ratio "60") ;; スクロール量の比率。100(%)で1ページ毎のスクロール。 (defvar moz-scroll-time "60") ;; アニメーション時間。高いほどゆっくりに。 (defun moz-send-line (str) (interactive) (comint-send-string (inferior-moz-process) (concat moz-repl-name ".pushenv('printPrompt', 'inputMode'); " moz-repl-name ".setenv('inputMode', 'line'); " moz-repl-name ".setenv('printPrompt', false); undefined; ")) (comint-send-string (inferior-moz-process) (concat str "; ")) (comint-send-string (inferior-moz-process) (concat moz-repl-name ".popenv('inputMode', 'printPrompt'); undefined;\n"))) (defun moz-scroll-down () (interactive) (moz-send-line (concat "(function(){var t=" moz-scroll-time ",r=" moz-scroll-ratio " ;var i=0,w =document.documentElement,s=gBrowser.selectedBrowser.contentWindow.scrollY,e=s+w.clientHeight/(100/r),v=(e-s)/t,c=s;for(i;i<t;i++){setTimeout(function(){c+=v;content.scrollTo(0,c);},i+1)}})();"))) (defun moz-scroll-up () (interactive) (moz-send-line (concat "(function(){var t=" moz-scroll-time ",r=" moz-scroll-ratio " ;var i=0,w =document.documentElement,s=gBrowser.selectedBrowser.contentWindow.scrollY,e=s+w.clientHeight/(100/r),v=(e-s)/t,c=s;for(i;i<t;i++){setTimeout(function(){c-=v;content.scrollTo(0,c);},i+1)}})();"))) (defun moz-prev-tab () (interactive) (moz-send-line "gBrowser.mTabContainer.advanceSelectedTab(-1, true)")) (defun moz-next-tab () (interactive) (moz-send-line "gBrowser.mTabContainer.advanceSelectedTab(1, true)")) ;;(global-set-key (kbd "c-x ret <up>") 'moz-scroll-up) ;; C-x C-m C-p ;;(global-set-key (kbd "c-x ret <down>") 'moz-scroll-down) ;; C-x C-m C-n ;;(global-set-key (kbd "c-x ret del") 'moz-prev-tab) ;; C-x C-m C-h ;;(global-set-key (kbd "c-x ret c-l") 'moz-next-tab) ;; C-x C-m C-l