From b5dbd983cbf2a5b98f2d1eb6fb9850018186d462 Mon Sep 17 00:00:00 2001 From: Skladnayazebra Date: Sat, 11 Apr 2026 20:57:51 +0200 Subject: centered manpage viewer --- nvim/init.lua | 1 + nvim/lua/config/man.lua | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 nvim/lua/config/man.lua (limited to 'nvim') diff --git a/nvim/init.lua b/nvim/init.lua index aabd42b..07c7054 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -2,6 +2,7 @@ require("config.lazy") require("config.lsp") require("config.trailing-spaces") require("config.keymaps") +require("config.man") vim.o.background = "dark" vim.o.tabstop = 4 diff --git a/nvim/lua/config/man.lua b/nvim/lua/config/man.lua new file mode 100644 index 0000000..0c0357c --- /dev/null +++ b/nvim/lua/config/man.lua @@ -0,0 +1,24 @@ +vim.api.nvim_create_autocmd({ "FileType", "VimResized" }, { + pattern = "man", + callback = function() + -- Read MANWIDTH from environment or fallback to 80 if not set + local manwidth_env = os.getenv("MANWIDTH") + local target_width = tonumber(manwidth_env) or 80 + + -- Calculate padding to center the text + local win_width = vim.api.nvim_win_get_width(0) + local padding = math.max(0, math.floor((win_width - target_width) / 2)) + local nu_offset = vim.wo.numberwidth or 0 + local final_padding = math.max(0, padding - nu_offset) + + vim.opt_local.statuscolumn = string.rep(" ", final_padding) .. "%=%{v:lnum} " + + -- disable wrapping only for centered view + if final_padding > 0 then + vim.opt_local.wrap = false + else + vim.opt_local.wrap = true + end + end, +}) + -- cgit v1.3.1