Firefox:Emacsスタイルのキーボードショートカット、およびマウスの中ボタンをクリックしてクリップボードの内容を読み込む

Unixの日常生活でより快適で便利に使用するためのFirefoxの2つのレシピ「料理」をhabrosocietyと共有したいと思います。



FreeBSDでのFirefoxのバージョンについてです。 ただし、以下で説明するすべては、Linuxのバージョンに非常に適用可能です。 Windowsの場合、すべてがそれほど単純ではなく、他の方法で解決できます。



FirefoxでEmacsスタイルのキーボードショートカットを「埋め込む」方法と、リンクのように見えるもの( http://プレフィックスなど)だけでなく、マウスのミドルクリックでFirefoxコンテンツを読み込む方法について説明します。 。



トピックが興味深い場合は、猫の下でお願いします。



だから。 さまざまな理由でシェル(特にbash)を使用している私たちはそれぞれ、おそらくEmacsスタイルのキーバインドに精通しています。 例:

Ctrl-a:行の先頭に移動します

Ctrl-e:行末に移動

Ctrl-u:行の先頭まで削除

Ctrl-k:行末まで削除





私はこれらのキーボードショートカットの使用に慣れているため、他のプログラムで頻繁に使用しようとしています。 特に、Firefoxで。 ただし、これは予期しない結果につながります。 たとえば、「Ctrl-w」の組み合わせは、カーソルの前の単語を削除する代わりに、単に現在のタブを閉じます。



むかしむかし、私はこの状況にうんざりしていて、 MozillaZineの広大さに見られる方法を使いました。 それ以来、Firefoxのすべてのアップデートでこのソリューションを使用しています。 以下に一連のアクションを説明します。



まず、Firefoxをインストールする必要があります。 FreeBSDでは、portsコレクション( ports / www / firefox )からインストールできます。 次に、 toolkit.jarファイルを取得する必要があります。 デフォルトでは、FreeBSDでは、 / usr / local / lib / firefox / chrome /ディレクトリにインストールされます。 次に、それを開梱する必要があります。 これを行うには、JDK配信のjarユーティリティ、 fastjarユーティリティ( ports / archivers / fastjar )、または通常のunzipを使用します。



mkdir /tmp/firefox/ && cd /tmp/firefox/ && cp /usr/local/lib/firefox/chrome/toolkit.jar /tmp/firefox/ && fastjar -xf toolkit.jar







アーカイブの内容が現在のディレクトリに解凍されます。 次に、次をcontent / global / platformHTMLBindings.xmlファイルに追加します。



1)<binding id = "inputFields">の<handlers>セクションへ

 <!-- Emacsish single-line motion and delete keys --> <handler event="keypress" key="a" modifiers="control" command="cmd_beginLine"/> <handler event="keypress" key="e" modifiers="control" command="cmd_endLine"/> <handler event="keypress" key="b" modifiers="control" command="cmd_charPrevious"/> <handler event="keypress" key="f" modifiers="control" command="cmd_charNext"/> <handler event="keypress" key="h" modifiers="control" command="cmd_deleteCharBackward"/> <handler event="keypress" key="d" modifiers="control" command="cmd_deleteCharForward"/> <handler event="keypress" key="w" modifiers="control" command="cmd_deleteWordBackward"/> <handler event="keypress" key="u" modifiers="control" command="cmd_deleteToBeginningOfLine"/> <handler event="keypress" key="k" modifiers="control" command="cmd_deleteToEndOfLine"/>
      
      







2)<binding id = "textAreas">および<binding id = "editor">セクションの<handlers>セクション

 <!-- Emacsish single-line motion and delete keys --> <handler event="keypress" key="a" modifiers="control" command="cmd_beginLine"/> <handler event="keypress" key="e" modifiers="control" command="cmd_endLine"/> <handler event="keypress" id="key_left" key="b" modifiers="control" command="cmd_charPrevious"/> <handler event="keypress" id="key_right" key="f" modifiers="control" command="cmd_charNext"/> <handler event="keypress" id="key_delback" key="h" modifiers="control" command="cmd_deleteCharBackward"/> <handler event="keypress" id="key_delforw" key="d" modifiers="control" command="cmd_deleteCharForward"/> <handler event="keypress" id="key_delwback" key="w" modifiers="control" command="cmd_deleteWordBackward"/> <handler event="keypress" id="key_del_bol" key="u" modifiers="control" command="cmd_deleteToBeginningOfLine"/> <handler event="keypress" id="key_del_eol" key="k" modifiers="control" command="cmd_deleteToEndOfLine"/> <!-- Emacsish multi-line motion and delete keys --> <handler event="keypress" id="key_linedown" key="n" modifiers="control" command="cmd_lineNext"/> <handler event="keypress" id="key_lineup" key="p" modifiers="control" command="cmd_linePrevious"/>
      
      







その後、アーカイブをfastjar -cf toolkit.jar */



戻します: " fastjar -cf toolkit.jar */



"(または " zip -r



"を使用)。 そして、ソースディレクトリに移動します。



mv toolkit.jar /usr/local/lib/firefox/chrome/toolkit.jar







これにはルート権限が必要です。 また、もちろん、 toolkit.jarファイル最初にバックアップする必要があります。

Firefoxを再起動し、ブラウザーのアドレスバーを含むすべてのテキストフィールドにEmacsスタイルのキーボードショートカットが表示されるようにします。

Firefoxの新しいバージョンがリリースされるたびにcontent / global / platformHTMLBindings.xmlファイルの内容を掘り下げないように、これらの変更をパッチでラップしました。



続けましょう。 Firefoxの4番目のバージョンから、マウスの中ボタンをクリックすることで、このリンクに対応するプレフィックス( http://など)がない場合、ブラウザーがクリップボードからリンクをダウンロードしようとすることはなくなりました。 つまり、たとえば、Webサーバーのログから、仮想ホストの名前をコピーしてブラウザーでそのWebサイトを見る場合、ブラウザーウィンドウの通常の中央クリックの代わりに、アドレスバーにカーソルを置き、そこにコンテンツを貼り付ける必要がありますクリップボードとEnterキーを押します。 控えめに言っても、この革新は私を非常に落胆させ、ウェブ上のソリューションを探すことに再び向きを変えました。 そして解決策が見つかりました。 これには、上記の方法と同じ手順が含まれます。 編集するファイルのみが異なります。 ディレクトリ/ usr / local / lib / firefox / chrome /からbrowser.jarファイルを取得し、バックアップして展開します。 さらに、ファイルコンテンツ/ browser / browser.jsで次のブロックを見つけます。



  try { makeURI(url); } catch (ex) { // Not a valid URI. return; }
      
      







そして、これに置き換えます:



  var URIFixup = Components.classes["@mozilla.org/docshell/urifixup;1"] .getService(Components.interfaces.nsIURIFixup); url = URIFixup.createFixupURI(url, 1).spec; // 1 is FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP
      
      







新しく作成したbrowser.jarを保存し、パックバックして、 / usr / local / lib / firefox / chrome /ディレクトリに戻します。 ブラウザを再起動し、 about:configcontentLoadURLオプションがtrueであることを確認し、結果を楽しんでください:マウスの中ボタンをクリックすると、ブラウザは、リンクと見なされるコンテンツだけでなく、クリップボードからコンテンツをロードしようとします。



前の方法については、 適切なパッチを使用することもできます。



どちらの方法も長い間使用されており、最近リリースされたFF 10.0ですでにパフォーマンスがテストされています。

このアプローチのマイナス点:Firefoxを更新するたびにパッチを適用する必要があります。



この記事がお役に立てば、あなたのお気に入りのブラウザで作業することで、誰かにさらに満足と楽しみをもたらすことを願っています。



この記事では次の資料が使用されました。

1. Emacsキーバインド-Firefox (MozillaZine)。

2. Firefox 4:middlemouse.contentのロードを修正し、jar (ShallowSky.com) をハッキングします



All Articles