EmacsからFirefoxを操作してやるっ!! Mozrepl

Mac

ごめんなさい。Lisp(拡張の書きかた?)わかりません。
ただなんとなくやっていたら成功したので、紹介することにしました。

必要なもの

  • Firefox
  • Mozrepl – Firefoxの拡張
  • CocoaEmacs – ほかの環境ではテストしてません。
  • moz.el – Emacsのあれ。

Mozreplをインストールする。

FirefoxにMozrepl
いう拡張をインストールします。

Firefoxss014.png

Home – mozrepl – GitHub

上のページのInstallationからインストールしてください。

Firefoxss016.png

そして上の画像のところにある「Start」をクリック。また「Activate on startup」もチェックをつけておくとFirefoxを起動したときに自動で操作がで
きるようになるのでチェックをすることをおすすめします。

moz.elをインストールする。

Emacsにmoz.elをインストールします。

Emacs integration – mozrepl – GitHub

Firefoxss015.png

上の画像のところにある「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の拡張で確認するとわかりやすいかな??。

というわけで、今回はコードだらけでした。。。。
よかったら参考にしてくださいね。

でわでわ、たかともでした。

参考にさせていただきました。

Copy/Cut/Paste:【Emacs】ファイルを保存したときにFirefoxのアクティブページを更新させる

Get Adobe Flash playerPlugin by wpburn.com wordpress themes