Autocmds - obsidian-nvim/obsidian.nvim GitHub Wiki


id: Autocmds tags: []

Conventions

Autocmd events provide by this plugin follows following conventions:

  • Corresponds to Vim autocmd if reasonable, like BufWritePost in a vault will trigger ObsidianNoteWritePost.

Events

name triggered by data
ObsidianNoteEnter BufEnter
ObsidianNoteLeave BufLeave
ObsidianNoteWritePost BufWritePost
ObsidianNoteWritePre BufWritePre
ObsidianWorkspaceSet When you enter or switch workspace workspace object

How to use

vim.api.create_autocmd("User", {
   pattern = "ObsidianNoteEnter",
   callback = function(ev)
      local note = require("obsidian.note").from_buffer(ev.buf)
      --- anything you want to do
   end,
})

Example

Format code blocks

vim.api.nvim_create_autocmd("User", {
   pattern = "ObsidianNoteWritePost",
   callback = function(ev)
      require("conform").format({
         bufnr = ev.buf,
         formatters = { "prettier", "injected" },
      })
   end,
})

Turn off spell based on frontmatter

vim.api.nvim_create_autocmd("User", {
   pattern = "ObsidianNoteEnter",
   callback = function(ev)
      local note = require("obsidian.note").from_buffer(ev.buf)
      if note and note.metadata and note.metadata.spell == false then
         vim.wo.spell = false
      end
   end,
})