Firefoxのページ内検索に関して ちょっと調べることがあった のでついでにいろいろメモ。
Firefoxのページ内検索に関するabout:config設定
Firefoxではabout:configを開いて値を変更することで 直接ブラウザの設定を変える事が出来ます。 (ただし、いろいろ出来すぎてしまうので問題になる場合もあるのでいじる時は自己責任で。)
検索に関するものなのでsearch
とかで探せばあると思いきや
ページ内検索に関するものはfind
で探すと出てきます。
search
ではbrowser.search
など検索バーに関する設定などが見つかります。
findbar
ページ内検索に関わるものとしてfindbar.*
と言うものがあります。
設定名 | 型 | 値(初期値) | 意味 |
---|---|---|---|
findbar.entireword | 真偽値 | false | 検索時に完全一致にするかどうか |
findbar.highlightAll | 真偽値 | false | 検索時に一致した全てのものをハイライトするかどうか |
findbar.modalHighlight | 真偽値 | false | モーダルなハイライトをするかどうか |
findbar.iteretortimeout | 整数値 | 100 | 検索時に該当文字列を探すのに当てる時間のタイムアウト |
entireword
がちょっと探して必要だった設定。
highlightAll
をmodalHighlight
もentireword
と同時に
Firefox 50で一応搭載された見たいです。
highlightAll
はそのままですが、modalHighlight
は
こんな感じでその他の部分を暗くして検索一致部分がより強調される様になります。
最後のはちょっと自信がないですが、多分検索文字を入力した際、 ページ内を検索する際に余りに時間がかかる場合、 この時間(ミリ秒)以上経った場合には中断する、という値だと思います。
accessibility.typeaheadfind
find
で検索するとfindbar
以外にaccessibility.typeaheadfind
で始まる設定名が見つかります。
設定名 | 型 | 値(初期値) | 意味 |
---|---|---|---|
accessibility.typeaheadfind | 真偽値 | false | キー入力時に検索を開始する(Find As You Type, FAYT) |
accessibility.typeaheadfind.autostart | 真偽値 | true | trueならどのキーを打っても検索開始、falseなら' か/ を打った後に検索開始 |
accessibility.typeaheadfind.casesensitive | 整数値 | 0 | 0:大文字小文字関係なし、1:大文字小文字を区別、0/1以外:大文字を入れた場合のみ大文字小文字を区別(所謂smart case) |
accessibility.typeaheadfind.enablesound | 真偽値 | true | 打ち込んだ文字列に該当するものがページ内にない場合にアラート音を鳴らす |
accessibility.typeaheadfind.enabletimeout | 真偽値 | true | timeout の時間だけキー入力がなければ検索を中止する |
accessibility.typeaheadfind.flashBar | 整数値 | 1 | 1ならテキストが見つかった時に検索バーを点滅させる |
accessibility.typeaheadfind.linksonly | 真偽値 | false | リンクに含まれるテキストのみを検索する |
accessibility.typeaheadfind.matchesCountLimit | 整数値 | 1000 | 該当文字列を探す最大数 |
accessibility.typeaheadfind.prefillwithselection | 真偽値 | false | Ctrl-F時に選択している文字列がある場合それを検索文字として予め検索窓に入力する |
accessibility.typeaheadfind.soundURL | 文字列 | beep | アラート音設定(beep /default (Firefox 2.0以前のデフォルト音)/音ファイルへのパス/空(鳴らさない)) |
accessibility.typeaheadfind.startlinksonly | 真偽値 | false | 文字列の最初からマッチする場合のみに取る |
accessibility.typeaheadfind.timeout | 整数値 | 5000 | enabletimeout で検索を中止するまでの時間(ミリ秒) |
accessibility.typeaheadfind
は
環境設定
詳細
一般
にあるアクセシビリティの欄のキー入力時に検索を開始する(Find As You Type, FAYT)の項目に該当します。
これをチェックすれば
accessibility.typeaheadfind
がtrueになります。
なんですが、ここにある他の子設定達は
このFAYTの場合だけでなく
通常の検索時にも影響を与えます。
prefillwithselection
なんかは逆にFAYT時には関係ありません。
通常の検索で大文字小文字を区別したい場合にも
accessibility.typeaheadfind.casesensitive
の値を0以外の数字にします。
設定ファイルで管理する
これらの設定をブラウザで直接いじっても良いですが、 設定ファイルに書いておくと簡単に新しい環境で 設定できます。
user.js
user.jsというファイルを作りその中に
1
|
|
の様にJavaScriptでuser_pref
という関数に設定名、値を入れる様に書いていきます。
このファイルを Firefoxのユーザープロファイルフォルダに入れます。
Windowsだと
C:\Users\<USER>\AppData\Roaming\Mozilla\Firefox\Profiles\XXXXXXXX.default-XXXXXXXXXXXXX
Macだと
/Users/<USER>/Library/Application Support/Firefox/Profiles/XXXXXXXX.default-XXXXXXXXXXXXX
と言ったフォルダになっているはずです。(XXXXX
の部分はランダムな文字列)
もし見つからない場合などはFirefoxの メニューボタン(ハンバーガーボタン) ヘルプ(?)ボタン トラブルシューティング情報 へ行って アプリケーション基本情報の欄のプロファイルフォルダーの項目にある フォルダを開く(Windows)/Finderに表示(Mac)ボタンを押すと Explorer/Finderに該当フォルダが表示されます1。
この中にはprefs.jsと言うファイルがありその中にuser_pref
の設定が沢山書いてありますが
このファイルはFirefoxで変更した設定を書き込むファイルです。
なのでこれを書き換えることはabout:configなんかで直接変更するのに近い形になりますが
コアな設定ファイルなのでなるべくいじらない方が安全です。
user.jsというファイルをこのフォルダに入れるとprefs.jsを読み込んだ後に 読み込んで設定を上書きしてくれます。 なので安全に必要な設定を導入することが出来ます。
vimperatorrc
Vimperatorを使ってる場合には.vimperatorrcに
1
|
|
の様にset!
を使って設定を書いていくことが出来ます。
この設定は上記のprefs.jsやuser.jsより後に設定されるので 設定の上書きになります。
user.jsだとプロファイルフォルダをわざわざ開けてファイルをコピーしたりしないといけないので 結構面倒ですが、 Vimperatorを使ってるならホームディレクトリにある.vimperatorrcに書き込む だけなのでこちらのが簡単で他との共有も楽に出来るのでおすすめです。
ちなみに上記項目については基本的にデフォルトのままですが
casesensitive
だけVimで言う所のsmart case方式にしたいのでその設定を行っています。
他にも手違いで変更した時に戻すようにや、
バージョンが上がった時にデフォルトが変わって動作が変わるのを防ぐために
以下の様なものを書いています。
1 2 3 4 5 |
|
ちなみにhighlightAll
とmodalHighlight
に関してですが、
これらは機能としては有効にした方が便利かな、と思う点もあるのですが(特にhighlightAll
)
Vimperatorの検索の中でこれらを使うと、
Escで検索を中止してもハイライトがそのまま残ってしまいます。
消すにはリロードするか一度 Ctrl-Fで検索バーを出してそれを消す、みたいな作業が必要になります。 なので現状Vimperatorを使う限りこれらのオプションはオフにしておく必要があります。
他の端末と共有する
設定ファイルを使う
user.jsを使ってるなら新しい端末にuser.jsを持っていって プロファイルに入れます。
Vimperatorを使っているなら.vimperatorrcをGitHubのdotfilesレポジトリ なんかで管理して同じファイルを各端末で使う様にすればOK。
Firefox Syncで同期する
現在のFirefoxではFirefox Syncという機構で アドオンや一部の設定項目をクラウドで管理して同期させることが出来ます。 about:config の設定も一部は同期されますが全てはされません。
上記accessibility.typeaheadfind.casesensitive
なんかは同期されませんが、
これを同期したい場合、
services.sync.prefs.sync.accessibility.typeaheadfind.casesensitive
と言う設定名を新たにabout:configで真偽値として作り、 trueにすると同期されます。
これはどれか1つの端末で設定すると他の端末にも伝わって同期されるようになります。