vim+previm+MathJaxでmarkdownに数式を書く

必要なもの

  • vim
  • vim-markdown
  • previm
  • open-browser

前提

NeoBundleは設定済とする

設定

NeoBundle 'plasticboy/vim-markdown'
NeoBundle 'kannokanno/previm'
NeoBundle 'tyru/open-browser.vim'

NeoBundleLazy 'kannokanno/previm', {
\    'depends':   'open-browser.vim',
\    'filetypes': 'markdown',}

MathJax対応

~/.vim/bundle/previm/にprevimがある場合.

MathJaxの読み込みをテンプレートに追記.

@@ -5,6 +5,13 @@
         Preview
         
         
+        
+        
     
     
         

previmの処理後にMathJaxを呼び出すらしい.
ついでに$でインライン数式モードを使えるようにする.
これにより,$$で数式ブロックを,$でインライン数式を書けるようになる.

@@ -84,6 +84,10 @@
       Array.prototype.forEach.call(_doc.querySelectorAll('pre code'), hljs.highlightBlock);
       autoScroll('body', beforePageYOffset);
       style_header();
+
+      // for MathJax
+      MathJax.Hub.Config({ tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] } });
+      MathJax.Hub.Typeset(document.getElementById("preview"));
     }
   }

使い方

markdown を書いて,:PrevimOpen でプレビューする.
好きにコマンドを割り当てても良いと思う.

Vimとシェルと私

vimまたはgvimからシェルを新しいタブで呼び出して編集とコンパイル/インタプリットをvim内で完結できたらいーなー,と思って調べたら,満足する解が見付からなかったという話.

前提:私の考え方は,この方とかなり近い→シェルを求めて三千里~悠久のvim編~ - Alone Like a Rhinoceros Horn
ただしvimもemacsも編集内容によって使い分けている.

ともかく私の我侭は

  • zshを実行したいよ
  • :shellでコマンドラインを残してvimに戻れないのは有り得ない
  • screenやtmuxみたくCtrlショートカットの1つを占有されると,何に割り当てても困ることが多い
    C-a→数字のインクリメントは結構よく使う
    C-t→texファイルの編集はemacs+evil+YaTeXなので,コンパイルができなくなる
    などなど…

結局辿りついたのが,このweblogにも,たまに書いているxmonadというタイル型ウィンドウマネージャを入れて右Altのみをmodキーにするというもの.
Vim/Emacsやshellは左手で操作し,それらの間の遷移は右Altで遷移する,と.
バッファ切り替えの次元が1次元増えるような操作感なので,慣れないと厳しいかも知れんけど.

で,現状の課題は,VimShell作者のShougoさんもPresentation file · Shougo/vimshell.vim Wiki · GitHubで書かれているけど,
zsh上で入力した文字列をバッファに取り込めないこと.
vimに持ってくるのに,タイル型WMを使ってるくせにマウスが必要なのがイマイチだ.
はっきしいって,ターミナル側でC-kしたものをOS(?)のクリップボードみたいなところに格納してくれれば,Kaoriya版もってくれば,"+pとかで貼り付けられるんだけどなー.

VimFilerメモ

色々と書き集めている最中.
ある程度揃ったら,記事にまとめるかも.

VimFilerでファイルを開く時に新しいタブに開く
LSI設計雑記帳 Vim:Vimfilerのedit actionをtabopenに変更
VimFilerのキーバインド集
vimfiler のデフォルトキーバインドまとめ(機能別) - Alone Like a Rhinoceros Horn
どこを見てもoで2画面化&フォルダ同期と書かれてるけど,ubuntu上でKaoriya版をmakeして動かしている限りにおいては,ファイルオープンになる.Oで2画面化はできる