vim quickrun, gnuplotメモ

  • このエントリーをはてなブックマークに追加
  • Pocket

vimでgnuplotを使う環境を整えるのは面倒である。
emacsのgnuplot-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オプションを付けると、ウィンドウが閉じられなくてすむ。しかし、プロットするごとにウィンドウが増えてゆく。emacsのgnuplot-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
  • このエントリーをはてなブックマークに追加
  • Pocket

コメント

コメントを残す