zsh には pick-web-browser という関数があって、それを使うとコマンドラインから Web ブラウザが起動できるようになる。いろいろ細かく設定できて便利なので説明する。
基本的な使い方
autoload -Uz pick-web-browser
alias -s html=pick-web-browser
使い方はこんな感じ。
# HTML ファイルがあったとして ...
% ls
index.html
# それを直接指定する
% index.html
# index.html が Firefox で開かれる
# または明示的に関数を指定してもOK。
% pick-web-browser index.html
# ファイルとして存在しなくても、URLを開くこともできる。
% pick-web-browser "https://www.google.co.jp/search?q=zsh"
カスタマイズする
いろいろと細かく設定できるようになってるので紹介する。
どのブラウザを起動するか変更したい場合は、 x-browsers
という設定を変更する。
zstyle ':mime:*' x-browsers opera firefox
こんな感じで書くと、opera と firefox を使う、という意味になる。順番も関係あって、先に書いたものが優先順位が高い。この場合は opera と firefox 両方使用可能だったら opera が優先される。
それと browser-style
という設定で、起動中のブラウザで開くかどうかも指定できる。
zstyle ':mime:*' browser-style running x
running
が起動中のブラウザの新しいタブで開く、x
が新しいブラウザで開く、という意味になる。
例えばこんなふうに設定したとすれば、
zstyle ':mime:*' x-browsers opera firefox
zstyle ':mime:*' browser-style running x
この場合は以下のように上から順に探して、あったらそれでブラウザが起動する。
- Opera が起動中だったら、それの新しいタブで開く
- Firefox が起動中だったら、それの新しいタブで開く
- Opera がインストールされていたら、新しく Opera を起動してそれで開く
- Firefox がインストールされていたら、新しく Firefox を起動してそれで開く
それ以外にも、ブラウザを起動するときの引数を変えたり、テキストブラウザを使うようにしたりもできる。そのあたりの詳細は man を参照。
僕が使ってる設定
今僕が使っている設定を紹介する。
autoload -Uz pick-web-browser
alias -s html=pick-web-browser
alias web=pick-web-browser
zstyle ':mime:*' browser-style running x
zstyle ':mime:*' x-browsers firefox opera
# opera '-newpage' option is deprecated
zstyle ':mime:browser:running:opera:' command 'opera -newtab %u'
function wiki() {
if [ -n "$1" ]; then
pick-web-browser "http://ja.wikipedia.org/wiki/$1"
else
echo "usage: $0 word"
fi
}
function google() {
if [ -n "$1" ]; then
pick-web-browser "https://www.google.co.jp/search?q=${1}&ie=utf-8&oe=utf-8&hl=ja"
else
echo "usage: $0 word"
fi
}
Wikipedia とか Google 検索がすぐできるように関数も作ってる。
こんな感じで pick-web-browser を使うと便利になると思うのでぜひ使ってみてください!
参考
man zshcontrib(1) FUNCTIONS pick-web-browser