Posted at
zshDay 15

zsh を使って簡単に URL や HTML ファイルをブラウザで開く

More than 5 years have passed since last update.

zsh には pick-web-browser という関数があって、それを使うとコマンドラインから Web ブラウザが起動できるようになる。いろいろ細かく設定できて便利なので説明する。


基本的な使い方


.zshrc

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 という設定を変更する。


.zshrc

zstyle ':mime:*' x-browsers opera firefox


こんな感じで書くと、opera と firefox を使う、という意味になる。順番も関係あって、先に書いたものが優先順位が高い。この場合は opera と firefox 両方使用可能だったら opera が優先される。

それと browser-style という設定で、起動中のブラウザで開くかどうかも指定できる。


.zshrc

zstyle ':mime:*' browser-style running x


running が起動中のブラウザの新しいタブで開く、x が新しいブラウザで開く、という意味になる。

例えばこんなふうに設定したとすれば、


.zshrc

zstyle ':mime:*' x-browsers opera firefox

zstyle ':mime:*' browser-style running x

この場合は以下のように上から順に探して、あったらそれでブラウザが起動する。


  • Opera が起動中だったら、それの新しいタブで開く

  • Firefox が起動中だったら、それの新しいタブで開く

  • Opera がインストールされていたら、新しく Opera を起動してそれで開く

  • Firefox がインストールされていたら、新しく Firefox を起動してそれで開く

それ以外にも、ブラウザを起動するときの引数を変えたり、テキストブラウザを使うようにしたりもできる。そのあたりの詳細は man を参照。


僕が使ってる設定

今僕が使っている設定を紹介する。


.zshrc

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