ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

emacsコミュのfirefox を emacs-like キーバインドにしてみました

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こんにちは

ここには初めて投稿させていただきます、病気
療養中の amt と申します。

↓にfirefoxのスクロール、URL操作、検索等操
作を emacs風にする手順を試みてみました

http://d.hatena.ne.jp/amt/20050325/firefox

C-v での PageDown とかも実現しております。

皆様の御批判・御指導をいただければと思い
投稿させていただきました。

コメント(10)

私はXKeymacsを使って全てのアプリでemacs風のキーバインドにしてます。これも結構便利ですよ。
Windowsしか使わないで済む方はキー置き換えソフトでも
いいんでしょうけど、amtさんはXも使われている気がします。
私も仕事場ではXで持ち歩きノートはWindowsなので、
いつもXでは我慢していましたが、
可能ならFirefoxの設定で吸収できた方が断然助かります。

で、試してみました。感動。
できればAlt-vもscrollPageUpに割り振りたい気がします。
Altでメニューを開きたいEmacs使いはいません(キッパリ)
可能かどうかもまだわかっていませんけど…。

まだ自分でカスタマイズしていないので何とも言えませんが、
今のところいい感じです。慣れてきたらまた書き込みます。

私がちょっとハマった点について追記します。
keyconfigってuser.jsなりplatformHTMLBindings.xmlなりを
GUIから簡単に設定できるような拡張かと思っていたんですが、
機能拡張をしてるんですね。
keyconfigをインストールしていない状態で
上のURLの設定をuser.jsに貼るだけだと一切動かないので
ちょっと混乱しました。私だけかとは思いますが念のため。
> Altでメニューを開きたいEmacs使いはいません(キッパリ)

の件ですが、
user_pref("ui.key.menuAccessKey", 0);
でできました。Ctrl+vとAlt+vで移動しまくりです。

また、キー置き換えに関してはuser.jsに設定せず、
prefs.jsを書き換えた方が良い内容のように思いました。
(GUIで設定した内容を再起動時に上書きする恐れがあるので)
> 参考までに、どのようにして解に辿りついたのか
> 教えてくださいませんか。

適当なキーワードで何個か検索してみただけです。
どんなキーワードだったかは既に忘れてしまいました…。

また、私も今のところLinuxでしか試していませんから
特に環境の差による誤解は無いと思います。
私の使っているものはgtk1用に自分でビルドしたものですけど。
(自分で作るのはアホらしいと思いつつ環境が変えられない…)

> prefs.js が上書きされてしまうので、user.js の 方が好ましい

prefs.jsの件は、基本的にはfirefox自身が書き換えるファイルで
ユーザーがエディタで書き換えるのは禁じ手のはず、というのは
その通りだと思います。user.jsの内容をfirefoxが起動時に
prefs.jsの内容と合わせて読み込み、user.jsの内容も含めて
prefs.jsに書き戻します。

ただ、この状態で「Tools」-「Keyconfig」(以降GUIと呼びます)
からuser.jsで定義したキー定義を変更すると、firefox終了時に
prefs.jsにその変更が書き戻されるのですが、
次回起動時にはuser.jsが上書きするため、
設定内容が消えてしまいます。

user.jsをマスター設定にしてGUIは使わないことにするなり、
keyconfigの設定をuser.jsに書いてprefs.jsに反映されたら
user.jsから消すなり解決策はいくらもありますが、
要はGUIかuser.jsかどちらか一方をマスター設定として、
他方は二度といじらない必要があるわけです。
状況を把握していないと混乱する可能性があると思って
あのように書きました。
余計混乱させてしまったようで済みません。

http://www.calmar.ws/firefox/index.php#keyconfig
の方がprefs.jsに書けと言っているのも同じ理由かと思います。

amtさんもC-sなどのdisableはGUIからやってらっしゃるようですし、
keyconfigの設定に関してはGUIとprefs.jsをマスターにしてしまい、
バージョンアップ時は古いprefs.jsから全コピー、
というのも手かと思いますがいかがでしょうか。
そのようなポリシーであるのなら全く問題はありませんが、
少なくとも私はGUIから書き換えた内容がuser.jsで上書きされるので
混乱しました。GUIで設定変更する人も当然いるでしょうから、
人に勧めるという意味であればこのあたりの説明もあった方が
望ましいかと思いますし、私はその説明が面倒だと思ったので
prefs.jsに書くように勧めて良いかと考えたのですが…。

実際のところバージョンアップのたびにGUIから設定するのも
面倒ですから、現時点のprefs.jsからkeyconfig関係の設定を
抜きだしてuser.jsに反映させるのが良い気もしてきました。
GUIはuser.jsでの設定内容の確認用といった位置付けですかね。

書き忘れていましたが、私は下記のような設定も追加しました。
動きが小さすぎるのでどうかという気もしますが、
人によっては便利かと思います。

user_pref("keyconfig.main.xxx_key__Line Down", "control][N][][goDoCommand('cmd_scrollLineDown');");
user_pref("keyconfig.main.xxx_key__Line Up", "control][P][][goDoCommand('cmd_scrollLineUp');");
おそらく私宛てなのに、お返事していませんでした。すみません。
といってもあまり内容は無いのですが…。

>念のために、これは僕の個人的な意見ではな
>いことを強調させていただきます。

私もそれはわかっていたつもりですが、
上に書いたように今回は特例かなと考えたということです。

ポータビリティを考えるとkeyconfigがprefs.jsに書いた内容を
逐一user.jsに書き写す必要があるわけで、
特に設定が落ち着いていない段階だったこともあり
そのように考えていましたが、現状では
私もprefs.jsからuser.jsに全て書き写しています。

入力フィールドについてはリンクと同様にTABキーで
移動可能のように思います。
私が何か意図を取り違えているのかとは思いますが…。

ところで上の方で私が書いた
> user_pref("ui.key.menuAccessKey", 0);
ですが、私はその後224に変更しました。
これはMetaキー(Altではありません)の意味です。
意図としては、私はタブを右クリックして
「c」キーでタブを消すことがあるのですが、
menuAccessKeyを0にしてしまうとこれも無効になるので、
使っていないMetaキーをダミーとして設定したということです。
また、JLPを使っていてmenuAccessKeyを0にしてしまうと
メニュー欄が妙に寂しくなってしまうのですが、
これを避けられるというメリット?もあります。

MetaとAltを使い分けている方には不可能な設定ですが、
ご参考ください。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

emacs 更新情報

emacsのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング