How to have a soft word-wrap without messing with vertical splits?

Hello all again :slight_smile:

Some days ago I configured Neovim to make paragraphs in Markdown files be a single line, but to see them visually wrapped. I’ll call this feature soft-wrap:

vim.o.textwidth = 0
vim.o.wrapmargin = 0
-- visual wrap (no real line cutting is made)
vim.o.wrap = true
vim.o.linebreak = true -- breaks by word rather than character

However since my monitor lets Neovim to have 165 columns, this configuration doesn’t make much sense: I wanted to have a narrower view of my documents to aid in my reading.

Then I found and added:

vim.opt_local.columns = 80

Which makes Neovim think it has only 80 columns. And that was pretty good… Until today that I found that this option also affects vertical splits: now my Markdown documents are hard to read when working with vertical splits because the buffer is too narrow.

What would be the best approach to have a dynamic setting? I’d like to have vim.opt_local.columns = 80 permanently set, but to get back automatically to the hardware allowed width when I make a vertical split.

2 Likes

I am actively searching for a tweak to resolve this precise issue, I ammot too skilled but wanted to let you know you’re not alone and you worded my search perfectly.

Setting columns on markdown files also affects help windows, still have to write some sort of buftype call to override the markdown columns option.

Did you ever find a solution?