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

vim quickrun, gnuplotメモ

移転しました。

vimgnuplotを使う環境を整えるのは面倒である。
emacsgnuplot-modeのようなことをしたい場合は、そちらを使うことを検討したほうがよい。
環境: mac osx el capitan

  • 日本語で参考になる記事

vimでgnuplotをコンパイルしてepsを表示 | 身の回り
vimでgnuplotをQuickrunするやつを改良させていただく - くれなゐの雑記

  • vimで編集中のソースコードを、コンパイルして結果を分割したウィンドウに表示する、という一連の操作をショートカットキーでできるようにするのがquickrunプラグイン。インストールは、githubのthinca/vim-quickrunでプラグインファイルを拾ってきて、プラグイン用のディレクトリに置けばよい。
  • ディレクトリは、runtimepathと呼ばれていて、vimノーマルモードで :set runtimepathと入力すると、表示される。~/.vim/など。
  • quickrunの実行は、ノーマルモードで :QuickRunとする。ショートカットはrとなっている。
  • というメタキーはデフォルトでは、バックスラッシュ\になっている。ノーマルモードで、:set mapleaderと打ってみて、表示されればそれがである。Undefinedと表示されれば、設定されていないので、デフォルトである。mac日本語キーボードだと、¥キーでは、¥が入力され、option+¥でバックスラッシュが入力される。日本語環境設定で、逆にできる。
  • を設定するには、let mapleader = "\"などと.vimrcに記述しておく。
  • 無名ファイル編集中は、quickrunがfiletypeを認識しないので、:setfiletype pythonなどとする。あるいは、ヘッダをファイルに書いておく。#!/usr/local/bin/env pythonなど。
  • gnuplotはデフォルトではquickrunできない。
  • gnuplotのfiletypeを認識させる設定と、そのfiletypeのときのquickrunの設定をする。
  • 次の内容を書いたファイルを~/.vim/ftdetect/gnuplot.vimに置く。*.pltというファイル名のとき、'gnuplot'ファイルであるとvimが認識する。
au BufRead,BufNewFile *.plt	setfiletype gnuplot
  • 次の内容を~/.vimrcに追記。gnuplotファイルの時、quickrunすると、編集中ファイルのディレクトリにcdをしてから、gnuplot を実行してくれる。
"quickrun gnuplot
let g:quickrun_config = {}
let g:quickrun_config['gnuplot'] = {
	\ 'type'    : 'gnuplot',
	\ 'command' : 'gnuplot',
	\ 'exec'    : 'cd %s:h; %c %s',
	\}
  • gnuplotで、x11へプロットする場合は、次のようにpersistオプションを付けると、ウィンドウが閉じられなくてすむ。しかし、プロットするごとにウィンドウが増えてゆく。emacsgnuplot-modeみたいに、gnuplotを起動したままでないとダメかも。しかし起動したままだとvimに操作が戻ってこないので、quickrunの非同期実行をするなどしないといけないかも。解決方法は不明。
set term x11 persist
  • gnuplotで次のようにすると、epsへ出力したのち、Preview.appで開いてくれるが、Preview.appはepsをpdfへ変換して表示する関係で、epsの内容が更新されても、previewの表示は更新されない。tell activateしても同様。Preview.appの設定では対応できないとの話。
set term postscript enhanced eps
set out "tmp.eps"
rep
set out
!open -g -a Preview.app tmp.eps
  • なので、他のepsビューアを使う必要がある。gvを使う。homebrewならば。
$ brew search gv
$ brew install homebrew/x11/gv
  • gvはファイルを監視するオプション -watchをつけて起動すればok. 起動したら、vim上でquickrunでepsを作るたびに、epsが更新される。
gv -watch tmp.eps