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

実験系研究者がVimを使うと幸せになれる10の理由

はじめに

この記事はVimアドベントカレンダー2016の3日目の記事です.

先日はrhysdさんでピュアVim scriptのCコンパイラを作る話でした. 変態すぎ凄すぎてちょっと意味が分かりません.

昨日とは一転,本日担当の私はプログラミングが本職でないゆるいvimmerです.というか,専攻は情報系でさえなく実験物理をやっています. プログラマでなくてもvimを使うと幸せになれるよ,というのが本記事の趣旨になります.

vimガチ勢の方には,ゆるいvimmerはそんな視点でvimを選んでいるのねと,生暖かく見守っていただければ幸いです.

10の理由

1. 研究室は独自記法の宝庫

手を動かして実験する研究者でも,プレーンテキストに触れる機会は多いものです.具体的には

  • 測定機器の設定ファイルや,測定を自動化するためのシークエンスを書いたファイル
  • 測定データそのもの
  • 解析ソフトの設定ファイルや,解析のためのスクリプト
  • 論文を書くためのLaTeXのファイル
  • 先輩が残していったソフトウェアのための,奇怪な書式の入力ファイル

等です.これらをまとめて扱うにはメモ帳は明らかに力不足で,何らかの高機能テキストエディタの導入が必要になります.

2. 実験に使うWindowsでも,解析に使うMacでも動く

実験系の研究者の場合,実験を行ってその結果を解析する必要があります. で,実験装置の制御ソフトはメーカーからWindows版が提供されることが多いのに対して,便利な解析ソフトはMac(unix)で動くものが多いという事情があります*1

つまり,エディタもWindowsでもMacでも同じように動くものだととても便利です.

3. 専門用語の入力はGoogle IMEにおまかせ

どのOSでも動く高機能なテキストエディタ,というとvimemacsが二強なわけですが,私がvimを選んだ理由のひとつにIMEとの連携がありました.どうもemacsはその内部に独自のIMEを持っているらしく,外部のIMEが使えません*2

私の場合,研究に関する文書を書くときには,例えば「しゅれ」の変換候補に「シュレーディンガー」を出してくれるGoogle日本語入力が手放せないため,emacsではなくvimを使うことに決めました.

4. キーバインドが覚えやすい

暗記科目が苦手だったから理系を選んだって話,自分の周りでは結構聞く気がします. 高機能エディタを使っても,機能が覚えられなければ意味がないのですが,vimには「モード」の概念があるため,キーバインドが比較的覚えやすいです. 少なくとも,ControlとAltとコレを同時に押すと...といったパターンはありません.

ただし,カーソルの移動がhjklなのは敷居が高い気がします*3

5. 最近は実験家も理論計算する

技術の進歩により,最近は実験家でも比較的簡単に理論計算ができるようになりました. 量子計算用のQuantum-ESPRESSO等,オープンソースの解析ソフトも多数開発されています.

ただ,こういった学術用のソフトはユーザー数が少ないため,多くのエディタではシンタックスハイライト等の対応がなされていません.しかしvimであれば,emacsと並んで最も広く使われているエディタであるので,誰かが専用の設定を書いてくれている公算が高いです.前記のQuantum-ESPRESSOであればこちら.

github.com

6. 強力なLaTeXサポート

実験系にかぎらず,理系研究者なら避けては通れないプレーンテキストファイルに,論文執筆のためのLaTeXファイルがあります. PDFビューアの設定に若干の面倒臭さがあるものの,例えばこちらのプラグインを使うことで,強力なLaTeX用エディタを手に入れることができます.

github.com

7. プレーンテキストで簡単ドキュメント

実験を安全にスムーズに行うため,実験装置には使い方のマニュアルがついているべきです.ただ,実験装置に付属のマニュアルは分厚すぎて参照性が低かったり,装置の魔改造によって本来の使い方と異なる手順が必要になっていたりします. しかし厄介なことに,そういった装置の使い方は先輩から口伝で教え継がれていたりします.

vimに限った話ではないのですが,プレーンテキストだとmarkdown記法を用いて簡単にマニュアルが作れます.見た目を整えたかったり,ボスから「Wordでくれ」と言われた場合には,pandocを使って(Wordを使わずに)プレーンテキストから.docxファイルが生成できる時代になってます.(詳細は以下の記事を参照してください.)

qiita.com

8. 設定を簡単に持ち運べるので出張でも安心

実験家であれば,共同実験先を訪問したり学会発表しに行ったりと,出張の機会も多々あるはずです. vimのカスタマイズには.vimrcというプレーンテキストファイルを使うので,これさえどうにかして*4持ち運べば,研究室のパソコンと同じ環境が出張用ノートパソコンに簡単に再現できます.

9. 安心の日本語マニュアル

以上が,実験家でも高機能のテキストエディタを使うと幸せになれる!といったポイントなのですが,高機能なソフトを使うときの不安として「使いこなすのが大変なのではないか?」というものがあります.ご安心ください.vimのマニュアルは日本語化されています.

github.com

10. コミュニティが活発

マニュアルを見ても使い方がよく分からない場合や,そもそもマニュアルのどこを見ればよいかわからない場合には?

日本のvimコミュニティは非常に活発なので,ググると大概回答が(日本語の記事として)見つかります.というか前記のヘルプ日本語化もvimコミュニティのお仕事で,大変ありがたいです.teratailのような質問サイトでも,質問すれば教えてもらえるはずです.

また,前述の.vimrcという設定ファイルの読書会(vimrc読書会)が毎週開かれているので,ぜひ覗いてみるのをおすすめします.便利な設定や,やってしまいがちな危ない設定等の貴重な情報が得られます*5

https://pbs.twimg.com/media/Cv80cd1UIAEqi4t.png

おわりに

記事の途中でも触れましたが,hjklでカーソル移動,という謎の独自の操作に慣れてしまえば,vimは大変便利なエディタです.プログラマーほどテキストに向き合う時間が多くない実験系研究者でも,充分その恩恵に与れます.

今回の記事でvimに興味を持つ研究者が少しでも増えれば幸いです.

*1:実験も解析もWindowsで完結する分野もそれなりにある気はします

*2:当時は知らなかったのですが,専用のパッチを当てた版では外部IMEが使えるようです.

*3:emacs使いへの変化が二次相転移なのに対して,vimmerへの変化は一時相転移なのだ,とか個人的には思ってます.で,vimを使うようになった後で,他のテキストエディタを触ったときに感じるもどかしさがヒステリシス.

*4:Dropboxのようなクラウドストレージを使うとか,githubリポジトリを作っておくとか

*5:最近ロゴができたようです.カッコイイ