おもてなしの空間 このページをアンテナに追加 RSSフィード





このページの情報が多少なりとお役に立てれば、相応の寄付を頂けますと励みになります。 ソフトウエアの改訂や機能追加などのご依頼があれば、寄付をはずんでいただけますと、その気になるかもしれません。(無保証です)
寄付のお願い
メッセージ

2005年03月25日(金)

[]firefoxキーバインドemacs風にしてみる

3/18 日(http://d.hatena.ne.jp/amt/20050318/firefox)に、firefox のtextarea のキーバインドのみ emacs 風にしてみたのだが、これをやるとfirefox 上の他の操作も、emacs を意識したキーバインドにしたくなってくる。

Google ってみると、vi-like なキーバインドを公開しているヒト(http://www.calmar.ws/firefox/index.php#keyconfig)はいるのだが、emacs-like なのは見付からなかった。仕方ないので、自分で検討してみた。

以下の話は keyconfig extension を導入していることを前提

keyconfig extension は、http://extensionroom.mozdev.org/more-info/keyconfig より最新版をインスコする。

●emacs使いにとってはとっても邪魔なデフォのキーアサインメント
	-History		-> C-h
	-Print			-> C-p
	-Save Page as		-> C-s
	-Find in this Page	-> C-f
	-Back			-> BS

     [Tools]->[keyconfig] で、これらの値をdisable にする。

●firefoxのキーアサインメントの制限
	-モディファイアは Ctrl, Shift, ALT だけ
	-ESC はモディファィアではなく普通の入力キー
	-C-c とか C-x みたいな、プレフィクスキーは使えない
	-アサインできるのは,零個以上のキーボードモデイファイアと単一のキーの組のみ
	-単一の機能に複数のキーバインドを配分する方法が判らん

●実現したいこと
    ○ページ操作
	--scrollPageDown  	C-v
	--scrollPageDown  	SPC
	--scrollPageUp	  	ALT-v	# Mixi hnw氏の御指導による。
	--scrollPageUp	  	BS
	--scrollTop		ALT-<
	--scrollBottom		ALT->
    ○url操作
	--goBack		B 	# w3m-el にあわせる
	--goForward		N 	# 同上    
	--goHome		H 	# 同上
	--BrowserReload		R 	# 同上
    ○検索
	--findAgain		C-s	# Findしなかったら Find相当の動作になる
	--findPrevious		C-r
    ○その他
	--addBookmarkAs		a 	# w3m-el に合わせた
	--NextTab		]	# Forward (C-]と間違いそう
	--PrevTab		[	# Backto(C-[)と間違いそう

user.js(linux だと ~/.firefox/YourAccount/*/にある) に以下の内容を追記すれば実現できる。

	// Mixiで hnw 様(http://mixi.jp/show_friend.pl?id=208886)の御指導により メニューView を disable して scrollPageUp の為に確保
	user_pref("ui.key.menuAccessKey", 0); 
	user_pref("keyconfig.main.xxx_key_PageUp", "!][][][goDoCommand('cmd_scrollPageUp');");
	user_pref("keyconfig.main.xxx_key__Page Up", "!][][][goDoCommand('cmd_scrollPageUp');");
	user_pref("keyconfig.main.xxx_key_ScrollPageDown", "!][][][goDoCommand('cmd_scrollPageDown');");
	user_pref("keyconfig.main.xxx_key__Page Down", "!][][][goDoCommand('cmd_scrollPageDown');");
	user_pref("keyconfig.main.xxx_key_ScrollTop", "!][][][goDoCommand('cmd_scrollTop');");
	user_pref("keyconfig.main.xxx_key_ScrollBottom", "!][][][goDoCommand('cmd_scrollBottom');");
	user_pref("keyconfig.main.xxx_key__Next Tab", "!][][][gBrowser.mTabContainer.advanceSelectedTab(1);");
	user_pref("keyconfig.main.xxx_key__Previous Tab", "!][][][gBrowser.mTabContainer.advanceSelectedTab(-1);");

	 /* Page Navigation */
	user_pref("keyconfig.main.xxx_key_ScrollPageDown", "control][v][][goDoCommand('cmd_scrollPageDown');");
	user_pref("keyconfig.main.xxx_key__Page Down", "][ ][][goDoCommand('cmd_scrollPageDown');");
	//user_pref("keyconfig.main.xxx_key_PageUp", "shift][V][][goDoCommand('cmd_scrollPageUp');");
	user_pref("keyconfig.main.xxx_key_PageUp", "alt][V][][goDoCommand('cmd_scrollPageUp');");
	//user_pref("keyconfig.main.xxx_key__Page Up", "][][][goDoCommand('cmd_scrollPageUp');");
	user_pref("keyconfig.main.xxx_key_ScrollTop", "alt][<][][goDoCommand('cmd_scrollTop');");
	user_pref("keyconfig.main.xxx_key_ScrollBottom", "alt][>][][goDoCommand('cmd_scrollBottom');");
	/* URL navigation */
	user_pref("keyconfig.main.goBackKb", "shift][B][");
	user_pref("keyconfig.main.goForwardKb", "shift][N][");
	user_pref("keyconfig.main.goHome", "shift][H][");
	user_pref("keyconfig.main.key_reload", "][R][");

	/* Search */
	//user_pref("keyconfig.main.key_find", "control][S][");
	user_pref("keyconfig.main.key_findAgain", "control][S][");
	user_pref("keyconfig.main.key_findPrevious", "control][R][");

	/* Bookmark */
	user_pref("keyconfig.main.addBookmarkAsKb", "][a][");

	/* Tab operation */
	user_pref("keyconfig.main.xxx_key__Next Tab", "][]][][gBrowser.mTabContainer.advanceSelectedTab(1);");
	user_pref("keyconfig.main.xxx_key__Previous Tab", "][[][][gBrowser.mTabContainer.advanceSelectedTab(-1);");

↑のファイルで Backspace の表現が不明だったので、scrollPageUp への BS へのバインドのみは、メニュー[Tools]->[keyconfig]より行なう。

しばらくこれで使ってみたけど、オペミスが激減したね。

  • 備考
    • Stopは、ESC やめて C-G がよいかも。しかしあんまりやると人の環境で誤操作頻発しそう
    • Linux/unix系の方は、textarea のキーバインドemacs-like にするのに、どのみち現状 platformHTMLBindings.xml をいじらざるを得ないので、この記事のように keyconfig extension を使うよりも platformHTMLBindings.xml の変更に一本化する方が賢明であると思う。

harpyharpy 2005/06/19 16:50 私はmozlessという拡張を作って使ってます。
http://humming.dip.jp/mozless/
less風ということで、vi風に近いです。

keyconfig知らなかったから作ったわけですが…。

ちなみに、mozlessにはlessの u と d の
半画面スクロールもあります。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証


[http://d.hatena.ne.jp/amt/mobile/:barcode]
■--このページについて--■

○日記開設以来のページビュー::7136056
○書いた人::逸見研一(いつみけんいち)
○mail::itsumi @ gmail.com
↑の@を半角に変更

○Skype(Voicemail)::itsumiken
いつみのカレンダー
いつみの進行管理New!
いつみの掲示板New!
ラジオ英会話上級公開ノート近日再編成
このページへリンクしているページ
このページを参照しているページ

アクセスログ

■--今読んでるモノ--■


※過去に読んだもののメモは こちら

■--今書いているモノ--■

external-filter-el20061224 着手
※過去に書き散らかしたものは こちら

■--謹製ソフトウエア--■

cmd2ftp20070118 公開
mininova_get20070102 改訂
del2bk20061223 改訂
Up2PB20061223 改訂
conv-el20061006 改訂!
pirate_get20060912 公開!
hatenahelper-mode.el

■--ほかのページ--■

おもてなしの空間 為替編20080428 発進!
アフィリエイト研究20061018 発進!
借りやすい消費者金融New!
中国株投資の証券会社選びNew!
おいでやすWiki
いつみの思いつき
いつみの予定
いつみのオープンノート
使ってみた Firefox extension
はてなフォトライフ(シンボリックな画像の倉庫)
del.icio.us
flickr
Orkut
Mixi
Facebook(実名で検索するとヒットします)New!

<< 2005/03 >>
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
最新コメント
■ 過去記事一覧 ■

■--お役立ち情報--■

html-helper-mode キーバインド
hatena-mode のキーバインド
はてな記法一覧
はてなダイアリー利用可能 html タグ

↓は、検索結果に、検索語に関連する広告が付いてくる検索窓です、面白いですよ

Google

. FLASH フラッシュ制作 携帯フラッシュ フラッシュゲーム