EmacsからFirefoxを操作してやるっ!! Mozrepl
ごめんなさい。Lisp(拡張の書きかた?)わかりません。
ただなんとなくやっていたら成功したので、紹介することにしました。
必要なもの
- Firefox
- Mozrepl – Firefoxの拡張
- CocoaEmacs – ほかの環境ではテストしてません。
- moz.el – Emacsのあれ。
Mozreplをインストールする。
FirefoxにMozreplと
いう拡張をインストールします。
上のページのInstallationからインストールしてください。
そして上の画像のところにある「Start」をクリック。また「Activate on startup」もチェックをつけておくとFirefoxを起動したときに自動で操作がで
きるようになるのでチェックをすることをおすすめします。
moz.elをインストールする。
Emacsにmoz.elをインストールします。
Emacs integration – mozrepl – GitHub
上の画像のところにある「moz.el」を右クリックして名前をつけて保存。ファイルをEmacsのロードパスが通ったところにおきます。
.emacs.d/init.elに以下を追加。
;; Emacsの起動時にmoz.elを読み込むところ
;;
(autoload 'moz-minor-mode "moz" "Mozilla Minor and Inferior Mozilla Modes" t)
(moz-minor-mode t)
;; ここはおまじないキーバインドを簡単にするおまじない。
;;
(defun moz-send-message(moz-command)
(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 moz-command
moz-repl-name ".popenv('inputMode', 'printPrompt'); undefined;\n")))
;; キーバインドはここから
;;
;; りろーどさせる C-c r
(defun moz-reload ()
(interactive)
(moz-send-message "content.location.reload();\n"))
(global-set-key "\C-cr" 'moz-reload)
;; 下に20行分スクロール shift + 下
(defun moz-scrolldown ()
(interactive)
(moz-send-message "content.scrollByLines(20);\n"))
(global-set-key '[S-down] 'moz-scrolldown)
;; 上に20行分スクロール shift + 上
(defun moz-scrollup ()
(interactive)
(moz-send-message "content.scrollByLines(-20);\n"))
(global-set-key '[S-up] 'moz-scrollup)
;; 右のタブに移動する Meta + 右
(defun moz-nexttab ()
(interactive)
(moz-send-message "gBrowser.mTabContainer.advanceSelectedTab(1, true);\n"))
(global-set-key '[M-right] 'moz-nexttab)
;; 左のタブに移動する Meta + 左
(defun moz-prev-tab ()
(interactive)
(moz-send-message "gBrowser.mTabContainer.advanceSelectedTab(-1, true);\n"))
(global-set-key '[M-left] 'moz-prev-tab)
;; すべてのタブを閉じる C-c C-w
(defun moz-close-all-tab ()
(interactive)
(moz-send-message "var browser = getBrowser(); browser.closeAllTabs();\n"))
(global-set-key "\C-c\C-w" 'moz-close-all-tab)
;; タブを閉じる C-c w
(defun moz-close-tab ()
(interactive)
(moz-send-message "var browser = getBrowser(); browser.closeTab();\n"))
(global-set-key "\C-cw" 'moz-close-tab)
キーバインドは自分で好きなものに変更してつかってください。
(defun 適当な関数名 ()
(interactive)
(moz-send-message "ここにコードを書くのだ〜\n"))
(global-set-key "ショートカット" '適当な関数名)
こんな感じで書いてあげると自分で定義することができます。コードのところはkeyconfigやkeysnailなどのFirefoxの拡張で確認するとわかりやすいかな??。
というわけで、今回はコードだらけでした。。。。
よかったら参考にしてくださいね。
でわでわ、たかともでした。
参考にさせていただきました。



