NeovimでTypstを書くための環境準備
はじめに
最近個人的に気にいっている組版であるTypstであったが、tinymist
を入れてNeovim上で編集しているとcallback.lua
(だったはず)によるアラートメッセージの嵐になってしまい、まともに作業できないという現象に見舞われていた。どうも日本語入力が邪魔しているようだったが、流石に日本語が打てない状態でレポートを書きたい訳もなく、泣く泣くVScodeを起動していた。
そんな時、友人からNeovimの方で更新があり問題が解消した(以下のpull request参考)との噂を聞いたので、Neovim v0.10.3を試してみよう、というのがこの記事である。
Neovim nightlyの準備
Neovimのアンインストール
Neovim v0.10.3はこの記事を執筆時点(2024/11/11)ではnightly(pre-releaseぐらいのニュアンス?)なので、一度手元のneovimをアンインストールしてあげる必要がある。筆者はHomebrewでダウンロードしていたので、
$ brew uninstall neovim
NeovimをGitHubからダウンロード
ここを参考にするとよい。
- ビルドに必要なものをダウンロード
筆者はmacOSなのでxcode
とninja
cmake
gettext
curl
を入れる
$ xcode-select --install
$ brew install ninja cmake gettext curl
- NeovimをGitHubからダウンロード
$ git clone git@github.com:neovim/neovim.git
- ディレクトリを移動し、
CMAKE
まずは作業ディレクトリに入る
$ cd neovim
今回はNeovim v0.10.3が目的なので、0.10のブランチへとチェックアウトする(執筆時点のv0.11.0は破壊的変更が沢山で大変だった)
$ git checkout release-0.10
ブランチを切り替えたら
$ make CMAKE_BUILD_TYPE=RelWithDebInfo
でビルドが開始する。
- インストール
$ sudo make install
で /usr/local/bin
にインストールされる。もしパスが通ってなければ通し、バージョン確認。
$ vim --version
NVIM v0.10.3-dev-25+gf8ee92feec
Build type: RelWithDebInfo
LuaJIT 2.1.1713484068
Run "nvim -V1 -v" for more info
Typst.vim, tinymistの準備
筆者はLazy.nvim
でプラグイン管理しているため、以下のようなluaファイルを用意してlua/plugins
以下に置く。
return {
{
"kaarmu/typst.vim",
ft = "typst",
lazy = false,
config = function() vim.g.typst_pdf_viewer = "skim" end, -- ここは好きなpdf viewerを入れるとよい
},
}
また、LSPはMason
で管理しているため。一度Neovimを起動して、:MasonInstall tinymist
としてあげる。
結果
無事環境設定に成功。:TypstWatch
からskim
を起動をして、Typstの魅力であるリアルタイムなコンパイルもskimの自動更新によって見られる。ようやくNvimでTypstが書けて嬉しい。
余談
先日ターミナル上でPDFを見ることのできるプログラム(しかも自動更新!)をみつけたので、これを組みあわせればこんな作業環境にもできる。
おしゃれ!
Discussion