rcmdnk's blog

20170714_firefoxmodal_200_200

Firefoxのページ内検索に関して ちょっと調べることがあった のでついでにいろいろメモ。

Sponsored Links

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がちょっと探して必要だった設定。

highlightAllmodalHighlightentirewordと同時に Firefox 50で一応搭載された見たいです。

highlightAllはそのままですが、modalHighlightは こんな感じでその他の部分を暗くして検索一致部分がより強調される様になります。

firefoxmodal

最後のはちょっと自信がないですが、多分検索文字を入力した際、 ページ内を検索する際に余りに時間がかかる場合、 この時間(ミリ秒)以上経った場合には中断する、という値だと思います。

FinderIterator.jsm - DXR

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 - MozillaZine Knowledge Base

Keyboard Feature: Find As You Type

accessibility.typeaheadfind環境設定 詳細 一般 にあるアクセシビリティの欄のキー入力時に検索を開始する(Find As You Type, FAYT)の項目に該当します。

これをチェックすれば accessibility.typeaheadfindがtrueになります。

なんですが、ここにある他の子設定達は このFAYTの場合だけでなく 通常の検索時にも影響を与えます。 prefillwithselectionなんかは逆にFAYT時には関係ありません。

通常の検索で大文字小文字を区別したい場合にも accessibility.typeaheadfind.casesensitiveの値を0以外の数字にします。

設定ファイルで管理する

これらの設定をブラウザで直接いじっても良いですが、 設定ファイルに書いておくと簡単に新しい環境で 設定できます。

user.js

user.jsというファイルを作りその中に

user.js
1
user_pref("accessibility.typeaheadfind.casesensitive", 2);

の様に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

.vimperatorrc
1
set! accessibility.typeaheadfind.casesensitive=2

の様にset!を使って設定を書いていくことが出来ます。

この設定は上記のprefs.jsuser.jsより後に設定されるので 設定の上書きになります。

user.jsだとプロファイルフォルダをわざわざ開けてファイルをコピーしたりしないといけないので 結構面倒ですが、 Vimperatorを使ってるならホームディレクトリにある.vimperatorrcに書き込む だけなのでこちらのが簡単で他との共有も楽に出来るのでおすすめです。

ちなみに上記項目については基本的にデフォルトのままですが casesensitiveだけVimで言う所のsmart case方式にしたいのでその設定を行っています。 他にも手違いで変更した時に戻すようにや、 バージョンが上がった時にデフォルトが変わって動作が変わるのを防ぐために 以下の様なものを書いています。

.vimperatorrc
1
2
3
4
5
set! accessibility.typeaheadfind=false
set! accessibility.typeaheadfind.casesensitive=2
set! findbar.highlightAll=false
set! findbar.entireword=false
set! findbar.modalHighlight=false

ちなみにhighlightAllmodalHighlightに関してですが、 これらは機能としては有効にした方が便利かな、と思う点もあるのですが(特に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つの端末で設定すると他の端末にも伝わって同期されるようになります。

Sponsored Links
Sponsored Links

« Firefoxの検索で単語全体でなく一部でも検索出来る様にする VimでCannot find color schemeが出る原因と対処法 »