NeovimでTypstを書くための環境準備
はじめに
最近個人的に気にいっている組版であるTypstであったが、tinymistを入れてNeovim上で編集しているとcallback.lua(だったはず)によるアラートメッセージの嵐になってしまい、まともに作業できないという現象に見舞われていた。どうも日本語入力が邪魔しているようだったが、流石に日本語が打てない状態でレポートを書きたい訳もなく、泣く泣くVScodeを起動していた。
そんな時、友人からNeovimの方で更新があり問題が解消した(以下のpull request参考)との噂を聞いたので、Neovim v0.10.3を試してみよう、というのがこの記事である。
[2025/03/17追記]
nvim v0.10.4がstableになったので、この記事の Neovim nightly の項目は不要になりました。
Neovim nightlyの準備
Neovimのアンインストール
Neovim v0.10.3はこの記事を執筆時点(2024/11/11)ではnightly(pre-releaseぐらいのニュアンス?)なので、一度手元のneovimをアンインストールしてあげる必要がある。筆者はHomebrewでダウンロードしていたので、
$ brew uninstall neovim
NeovimをGitHubからダウンロード
ここを参考にするとよい。
- ビルドに必要なものをダウンロード
筆者はmacOSなのでxcodeとninjacmakegettextcurlを入れる 
$ 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