🥳

NeovimでTypstを書くための環境準備

2024/11/11に公開

はじめに

最近個人的に気にいっている組版であるTypstであったが、tinymistを入れてNeovim上で編集しているとcallback.lua(だったはず)によるアラートメッセージの嵐になってしまい、まともに作業できないという現象に見舞われていた。どうも日本語入力が邪魔しているようだったが、流石に日本語が打てない状態でレポートを書きたい訳もなく、泣く泣くVScodeを起動していた。

そんな時、友人からNeovimの方で更新があり問題が解消した(以下のpull request参考)との噂を聞いたので、Neovim v0.10.3を試してみよう、というのがこの記事である。

https://github.com/neovim/neovim/pull/30747

Neovim nightlyの準備

Neovimのアンインストール

Neovim v0.10.3はこの記事を執筆時点(2024/11/11)ではnightly(pre-releaseぐらいのニュアンス?)なので、一度手元のneovimをアンインストールしてあげる必要がある。筆者はHomebrewでダウンロードしていたので、

$ brew uninstall neovim

NeovimをGitHubからダウンロード

ここを参考にするとよい。
https://github.com/neovim/neovim/blob/release-0.10/BUILD.md

  1. ビルドに必要なものをダウンロード
    筆者はmacOSなのでxcodeninja cmake gettext curlを入れる
$ xcode-select --install
$ brew install ninja cmake gettext curl
  1. NeovimをGitHubからダウンロード
$ git clone git@github.com:neovim/neovim.git
  1. ディレクトリを移動し、CMAKE

まずは作業ディレクトリに入る

$ cd neovim

今回はNeovim v0.10.3が目的なので、0.10のブランチへとチェックアウトする(執筆時点のv0.11.0は破壊的変更が沢山で大変だった)

$ git checkout release-0.10

ブランチを切り替えたら

$ make CMAKE_BUILD_TYPE=RelWithDebInfo

でビルドが開始する。

  1. インストール
$ 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以下に置く。

~/.config/nvim/lua/plugins/typst.lua
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を見ることのできるプログラム(しかも自動更新!)をみつけたので、これを組みあわせればこんな作業環境にもできる。


おしゃれ!

https://github.com/itsjunetime/tdf

GitHubで編集を提案

Discussion