読者です 読者をやめる 読者になる 読者になる

どせいたんさき。

ナスダヨー

Ubuntu 12.04 の gnuplot で history-search-backward を有効にする

gnuplot で GNU readline を有効にする

gnuplot は GNU readline を使っているはずなので C-p, C-n で履歴をサーチする機能を利用できるはずなのだけど, Ubuntu 用にコンパイルされているバイナリはそのオプションが有効になっていないらしい.ということでソースを apt-get にてダウンロードしてきてオプションを設定してコンパイルし直す.


Install Gnuplot 4.4.0 on Ubuntu Linux | miscellaneous.debris にて解説されている内容によれば wxWidgetX11 window を利用するためにはいくつか dev パッケージをインストールする必要があるそうなのではじめにインストール.その後, apt-get source gnuplot でソースをダウンロード. GNU readline を有効にするためのフラグは --with-readline=gnu だそうなので, configure, make, make install すれば完了.手順は以下の通り.

sudo apt-get install libwxgtk2.8-dev libpango1.0-dev \
                     libreadline6-dev texinfo libgd2-xpm-dev libx11-dev
sudo apt-get source gnuplot
cd gnuplot-4.4.3
sudo ./configure --prefix=/usr/local/ --with-readline=gnu
sudo make
sudo make install


この設定を有効にしておくと,

gnuplot> plot sin(x)/x
gnuplot> pi = 4*atan(1)
gnuplot> set xr [-pi:pi]
gnuplot> set yl "f"
gnuplot> set xl "x"
gnuplot> set yl "f(x)"
gnuplot> replot

上記のように入力したあとで,プロットする関数にちょこっと手を加えたいなー(レジェンドをつけるとか)と思ったら矢印上キー(あるいは C-p)を連打する必要があったのだけど GNU readline を有効にしておくことで pl まで入力して C-p すると今まで入力したコマンドの中から pl で始まるものだけを検索して表示してくれる.便利.

追記

もしかしたら設定を有効にするためには .inputrc に以下の記述が必要かもしれない.

# set history-search
"\C-p": history-search-backward
"\C-n": history-search-forward