Edited at

CLIのneovimでSkimとSyncTeXするには

More than 1 year has passed since last update.

本記事はvimのLaTeXプラグインvimtexを利用しているのが前提です。


neovimからskim

これは、CLIに限らずGUIのneovimでも同じはずです。

vimrcに以下のように追加すればOKです。


~/.vimrc

let g:vimtex_view_general_viewer = '/Applications/Skim.app/Contents/SharedSupport/displayline'

let g:vimtex_view_general_options = '@line @pdf @tex'

ちなみに、SkimをHomebrew caskでインストールしている場合は、displaylineのシンボリックリンクが自動的に/usr/local/binに貼り付けられるので、


~/.vimrc

let g:vimtex_view_general_viewer = 'displayline'


としても問題ありません。

これで、vim上で\lvとタイプすれば、Skimのpdf上で一致する箇所に飛ぶことができます。

Untitled.gif


skimからneovim

ここからは、(多分)CLI専用になります。


neovim-remoteのインストール

これは、neovimを外部から操作するためのツールです。pip3 install neovim-remoteでインストールします。


Skimの設定

Screen Shot 2017-07-17 at 3.34.35.png

コマンドの最後の:<esc>というのは、ステータスラインに行番号が残らないようにするためで、なくても大丈夫です。


コマンドラインからneovimを起動

コマンドラインからneovimを起動する際は、普通に起動してはいけません。

以下のように起動してください。

$ NVIM_LISTEN_ADDRESS=/tmp/nvimsocket nvim

毎回これを打つのは面倒だと思うので、シェルでaliasを作るなりすると良いと思います。

ちなみに僕はzshを使っているので、以下のように設定してます。


~/.zshrc

alias nvimtex="NVIM_LISTEN_ADDRESS=/tmp/nvimsocket nvim"


これで、nvimの代わりにnvimtexを使えば、SyncTeXが使える環境でneovimが起動できます。


実際にやってみる

Skimで開いたpdf上でcommand+shift+クリックをすれば、neovim上のtexファイルが自動的にその行に飛びます。

Untitled2.gif