🍦 Screenshot code with freeze from Neovim.
- 📸 Screenshot code — Select lines and generate beautiful PNG images
- 🔌 glaze.nvim integration — Automatic binary management via glaze.nvim
- 🎨 Syntax highlighting — Automatically detects filetype for proper highlighting
- ⚡ Zero config — Works out of the box
{
"taigrr/freeze.nvim",
dependencies = { "taigrr/glaze.nvim" },
config = true,
}use {
"taigrr/freeze.nvim",
requires = { "taigrr/glaze.nvim" },
config = function()
require("freeze").setup()
end,
}- Neovim >= 0.9.0 (0.10+ recommended)
- freeze binary (auto-installed via glaze.nvim)
- glaze.nvim for binary management
- Select lines in visual mode
- Run
:'<,'>Freeze - A
freeze.pngwill be created in your current working directory
Or freeze the entire buffer:
:Freezerequire("freeze").setup({
-- Output directory (default: current working directory)
output = nil,
-- Output filename (default: "freeze.png")
filename = "freeze.png",
-- Freeze theme (default: nil, uses freeze default)
theme = nil,
-- Additional arguments passed to freeze CLI
extra_args = {},
})require("freeze").setup({
output = vim.fn.expand("~/screenshots"),
filename = "code.png",
theme = "dracula",
extra_args = { "--padding", "20" },
})| Command | Description |
|---|---|
:[range]Freeze |
Freeze selected lines (or entire buffer) to PNG |
local freeze = require("freeze")
-- Setup (called automatically with config = true)
freeze.setup()
-- Freeze specific lines programmatically
freeze.freeze(start_line, end_line):checkhealth freezeVerifies Neovim version, glaze.nvim availability, and freeze binary installation.
- freeze — The underlying tool
- glaze.nvim — Go binary manager for Neovim