月別アーカイブ: 2017年12月

【解決済】MSYS2 + gVim + vim-fugitive on Windows

vim-fugitive めっちゃ使いやすい。Vim のキラープラグインの1つではないかと思う。Windows での CUI 環境を MSYS2 に移行したくらいから、gVim で :GStatus が使えなくなって、CUI 版の Vim を使っていた。今回その理由に気づいたので、メモとして残しておく。

症状

元々の環境

症状

  • CUI からは、:Gstatus も動く
  • GUI からは、:Gstatus すると、/home から始まって、C: で終わる変なパスとともに、No such file or directory のエラーが表示される。

直し方だけ知りたい人は、解決策へ。 続きを読む

Vim の ft-tex-syntax で \reffig も \ref と同様にハイライトする方法

Vim で LaTeX を書く、とにかく書く、はい、書きましょう。

\ref は、\label で設定した章や図表の番号を参照するための LaTex コマンドです。例えば、図の場合、

Figure~\ref{fig:bird}

みたいに書くと参照できますが、

プリアンブル部(main.tex の \documentclass から \begin{document} までの間の部分)に、

\newcommand{\reffig}[1]{Figure~\ref{#1}}

とか書いておくと、

\reffig{fig:bird}

だけで上記の Figure~\ref{fig:bird} と書いた時と同じになったりするんですね。とまぁ、ここまでは知ってる人も使ってる人も多いと思います。

問題は、\reffig に対して、\ref で行われるようなシンタックス処理が行われないことなんです。例えば、ラベルに _(アンダースコア)を使った場合、LaTex では、アンダースコアは特別な意味を持っているので、エラーとして表示されてしまいます。そんなの気にならない、という人は、ここまで読んでそっとこのページを閉じてください。「あ、それ、気になってた!」という人は続きを読んでください。

先に結論を書くと、.vimrc の syntax on の後?に、

autocmd FileTYpe tex syntax region texRefZone matchgroup=texStatement
      \ start="\\ref\(fig\|tab\|sec\|eqn\|chap\|alg\){"
      \ end="}\|%stopzone\>"
      \ contains=@texRefGroup

と書くと、reffig, reftab, refsec, refeqn, refchap, refalg が、ref と同じようにシンタックス処理されるようになります。別のファイルに書く方法もありますが、設定ファイルを増やしたくない場合はこれがおすすめです。

Vim ft-tex-syntax の設定

Vim を使って LaTeX 文章を書く、これがルーティーンという人のためのポスト。

さて、今時の Vim で LaTeX 文書を開くと、高度な syntax 設定によってコマンドや環境の色付けはもちろん、数式($a$とか)や、文字装飾(\textbf{}など)が展開されて、解釈した結果のように見えるようになっています。そして、その行にカーソルがあるときには、入力された通りの文字列が表示されます。

これはこれでスゲー!ってな話ではあるんですが、書くときにはちょっと不便なこともあります。見た目と、実際に入力されている文字が一致していないので、カーソルをその行に持っていくと文字が移動するのはなんかめんどいのです。そもそも論的に、エディタで入力されている文字と表示されている文字が一致していないというのはいかがなものか、と思う人も多いでしょう。 続きを読む