diff --git a/home/features/neovim/config/lua/my/abbreviations/unicode.lua b/home/features/neovim/config/lua/my/abbreviations/unicode.lua
index cf36c98..37b21c0 100644
--- a/home/features/neovim/config/lua/my/abbreviations/unicode.lua
+++ b/home/features/neovim/config/lua/my/abbreviations/unicode.lua
@@ -36,34 +36,6 @@ M.unicode = {
   { "pspeq", "⊋" }, -- [p]roper [s]u[p]erset or [eq]ual
   -- }}}
   -- }}}
-  -- {{{ Double stroked chars
-  { "AA", "𝔸" },
-  { "BB", "𝔹" },
-  { "CC", "ℂ" },
-  { "DD", "ⅅ" },
-  { "EE", "𝔼" },
-  { "FF", "𝔽" },
-  { "GG", "𝔾" },
-  { "HH", "ℍ" },
-  { "II", "𝕀" },
-  { "JJ", "𝕁" },
-  { "KK", "𝕂" },
-  { "LL", "𝕃" },
-  { "MM", "𝕄" },
-  { "NN", "ℕ" },
-  { "OO", "𝕆" },
-  { "PP", "ℙ" },
-  { "QQ", "ℚ" },
-  { "RR", "ℝ" },
-  { "SS", "𝕊" },
-  { "TT", "𝕋" },
-  { "UU", "𝕌" },
-  { "VV", "𝕍" },
-  { "WW", "𝕎" },
-  { "XX", "𝕏" },
-  { "YY", "𝕐" },
-  { "ZZ", "ℤ" },
-  -- }}}
   -- {{{ Common operators
   { "comp", "∘" }, -- composition
   { "mul", "⋅" }, -- multiplication
@@ -88,53 +60,13 @@ M.unicode = {
   { "iic", "∋" }, -- [I]n[c]ludes
   { "nic", "∌" }, -- does'[n]t [i]n[c]lude
   -- }}}
-  -- {{{ Greek characters
-  { "alpha", "α" },
-  { "beta", "β" },
-  { "gamma", "γ" },
-  { "Gamma", "Γ" },
-  { "delta", "δ" },
-  { "Delta", "Δ" },
-  { "eps", "ε" },
-  { "zeta", "ζ" },
-  { "eta", "η" },
-  { "theta", "θ" },
-  { "Theta", "Θ" },
-  { "iota", "ι" },
-  { "kappa", "κ" },
-  { "lam", "λ" },
-  { "Lam", "Λ" },
-  { "mu", "μ" },
-  { "nu", "ν" },
-  { "xi", "ξ" },
-  { "pi", "π" },
-  { "Pi", "∏" },
-  { "rho", "ρ" },
-  { "sigma", "σ" },
-  { "Sigma", "Σ" },
-  { "tau", "τ" },
-  { "upsilon", "υ" },
-  { "phi", "ϕ" },
-  { "ophi", "φ" }, -- open phi?
-  { "Phi", "Φ" },
-  { "chi", "χ" },
-  { "psi", "ψ" },
-  { "Psi", "Ψ" },
-  { "omega", "ω" },
-  { "Omega", "Ω" },
-  -- }}}
   -- {{{ Common symbols
-  { "iinf", "∞" },
-  { "niinf", "-∞" },
   { "star", "⋆" },
   { "nabla", "∇" },
   { "minidiam", "⋄" },
   { "tto", "→" },
   { "ttoo", "⟶" },
   { "mapto", "↦" },
-  { "square", "□" },
-  { "rquare", "▢" }, -- rounded square
-  { "diam", "◇" },
   -- }}}
 }
 
diff --git a/home/features/neovim/snippets/common/unicode-double-stroke.miros b/home/features/neovim/snippets/common/unicode-double-stroke.miros
new file mode 100644
index 0000000..749b412
--- /dev/null
+++ b/home/features/neovim/snippets/common/unicode-double-stroke.miros
@@ -0,0 +1,27 @@
+block auto
+  abbr AA 𝔸
+  abbr BB 𝔹
+  abbr CC ℂ
+  abbr DD ⅅ
+  abbr EE 𝔼
+  abbr FF 𝔽
+  abbr GG 𝔾
+  abbr HH ℍ
+  abbr II 𝕀
+  abbr JJ 𝕁
+  abbr KK 𝕂
+  abbr LL 𝕃
+  abbr MM 𝕄
+  abbr NN ℕ
+  abbr OO 𝕆
+  abbr PP ℙ
+  abbr QQ ℚ
+  abbr RR ℝ
+  abbr SS 𝕊
+  abbr TT 𝕋
+  abbr UU 𝕌
+  abbr VV 𝕍
+  abbr WW 𝕎
+  abbr XX 𝕏
+  abbr YY 𝕐
+  abbr ZZ ℤ
diff --git a/home/features/neovim/snippets/common/unicode-greek.miros b/home/features/neovim/snippets/common/unicode-greek.miros
new file mode 100644
index 0000000..4121ea9
--- /dev/null
+++ b/home/features/neovim/snippets/common/unicode-greek.miros
@@ -0,0 +1,34 @@
+block auto
+  abbr alpha α
+  abbr beta β
+  abbr gamma γ
+  abbr Gamma Γ
+  abbr delta δ
+  abbr Delta Δ
+  abbr eps ε
+  abbr zeta ζ
+  abbr eeta η
+  abbr theta θ
+  abbr Theta Θ
+  abbr iota ι
+  abbr kappa κ
+  abbr lam λ
+  abbr Lam Λ
+  abbr mmu μ
+  abbr nnu ν
+  abbr xi ξ
+  abbr pi π
+  abbr Pi ∏
+  abbr rho ρ
+  abbr sigma σ
+  abbr Sigma Σ
+  abbr tau τ
+  abbr upsilon υ
+  abbr phi ϕ
+  abbr ophi φ
+  abbr Phi Φ
+  abbr chi χ
+  abbr psi ψ
+  abbr Psi Ψ
+  abbr omega ω
+  abbr Omega Ω
diff --git a/home/features/neovim/snippets/common/unicode-misc.miros b/home/features/neovim/snippets/common/unicode-misc.miros
new file mode 100644
index 0000000..5c9443c
--- /dev/null
+++ b/home/features/neovim/snippets/common/unicode-misc.miros
@@ -0,0 +1,11 @@
+block auto
+  abbr sharp ♯
+  abbr flat ♭
+  abbr square □
+  abbr rquare ▢
+  abbr diam ◇
+  abbr iinf ∞
+  abbr niinf -∞
+  abbr sim ∼
+  abbr approx ≃
+  abbr cong ≅
diff --git a/home/features/neovim/snippets/common/unicode-subperscripts.miros b/home/features/neovim/snippets/common/unicode-subperscripts.miros
new file mode 100644
index 0000000..e08eb15
--- /dev/null
+++ b/home/features/neovim/snippets/common/unicode-subperscripts.miros
@@ -0,0 +1,16 @@
+block auto
+  abbr s0 ₀
+  abbr s1 ₁
+  abbr s2 ₂
+  abbr s3 ₃
+  abbr s4 ₄
+  abbr s5 ₅
+  abbr s6 ₆
+  abbr s7 ₇
+  abbr s8 ₈
+  abbr s9 ₉
+  abbr s+ ₊
+  abbr s- ₋
+  abbr s= ₌
+  abbr s( ₍
+  abbr s) ₎
diff --git a/home/features/neovim/snippets/miros.miros b/home/features/neovim/snippets/miros.miros
index 7b2878d..cbf2d3a 100644
--- a/home/features/neovim/snippets/miros.miros
+++ b/home/features/neovim/snippets/miros.miros
@@ -29,3 +29,7 @@ block auto !word
   string nil
     name ignore symbol
     snip \⋄
+
+  string escape
+    name escape brackets
+    snip \@^\⟨$1\⟩
diff --git a/home/features/neovim/snippets/odin.miros b/home/features/neovim/snippets/odin.miros
new file mode 100644
index 0000000..7b58d33
--- /dev/null
+++ b/home/features/neovim/snippets/odin.miros
@@ -0,0 +1,63 @@
+import common/unicode-greek
+import common/unicode-double-stroke
+import common/unicode-subperscripts
+import common/unicode-misc
+
+string loc
+  name loc parameter
+  desc Automatically passed location parameter
+  snip loc := #caller_location
+
+block auto
+  abbr anyint #any_int
+  abbr u8 ℕ₈
+  abbr v2 ℝ²
+  abbr v3 ℝ³
+  abbr v4 ℝ⁴
+
+block auto start
+  abbr private \@(private)
+  abbr reqres \@(require_results)
+
+  string const
+    snip $1 :: $0
+
+  string proc
+    snip
+      $1 :: proc ($2) -> $|3⟨$3,($3\, ok: bool)⟩ {
+        $4
+      }
+      $0
+
+  for kind <- @⟨struct,enum,bit_field⟩
+  string @⟨@kind:struct,enum,bitfield⟩
+    snip
+      $1 :: @kind $2 {
+        $3
+      }
+      $0
+
+  for kind <- @⟨when,if,else if⟩
+  string @⟨@kind:when,if,elif⟩
+    snip
+      @kind $1 {
+        $2
+      } $0
+
+  string else
+    snip
+      else {
+        $1
+      } $0
+
+  string forin
+    snip
+      for $1 in $2 {
+        $3
+      } $0
+
+  for level <- @⟨debug,info,warn,error,assert⟩
+
+  abbr f@level log.@level⋄f("$1", $2)$0
+  abbr @level  log.@level($1)$0
+
diff --git a/home/features/neovim/snippets/tex.miros b/home/features/neovim/snippets/tex.miros
index bf33e77..f0c02b6 100644
--- a/home/features/neovim/snippets/tex.miros
+++ b/home/features/neovim/snippets/tex.miros
@@ -40,6 +40,12 @@ block auto !math start
   string item
     snip \item$|1⟨,[$1] $0⟩
 
+  string @thmenv
+    snip
+      \begin{@thmenv}$?1⟨[@^⟨$1⟩]⟩$?2⟨\label{@thmprefix:@^⟨$2⟩}⟩
+        $0
+      \end{@thmenv}
+
   for kind <- @⟨chapter,section,subsection,subsubsection⟩
 
   string @kind
@@ -48,7 +54,13 @@ block auto !math start
       \\@kind⋄{$1}
       $0
 
-
+  string frame
+    name Beamer frame
+    desc Creates a beamer slide frame
+    snip
+      \begin{frame}$?1⟨{@^⟨$1⟩}⟩
+        $0
+      \end{frame}
   -- }}}
 
 block text
@@ -75,6 +87,8 @@ block text
     string $
       name inline math
       snip \$$1\$$0
+
+    abbr pause \pause
     -- }}}
 
   string forcecr
diff --git a/home/features/neovim/snippets/typst.miros b/home/features/neovim/snippets/typst.miros
index 4619c0f..be1d31e 100644
--- a/home/features/neovim/snippets/typst.miros
+++ b/home/features/neovim/snippets/typst.miros
@@ -1,4 +1,7 @@
 import common/math-phrases
+import common/unicode-greek
+import common/unicode-double-stroke
+import common/unicode-misc
 
 block auto start
   for thmenv <- @⟨lemma,theorem,corollary,definition⟩