On Thursday, November 18, 2021 at 10:23:32 PM UTC+1 fel...@felipegasper.com wrote:
> > > > On Nov 18, 2021, at 16:06, Tony Mechelynck <antoine.m...@gmail.com> > wrote: > > > > On Wednesday, November 17, 2021 at 4:01:00 PM UTC+1 > fel...@felipegasper.com wrote: > > Hello, > > > > When I set `cols=80` and enable line numbering (`number`), I lose the > last few columns for code because MacVim uses them for the line numbers. > > > > Is it possible to make the `cols` setting account for line numbering, so > that I get 80 columns for editing code, regardless of whether line > numbering is on (and how many columns the line numbers themselves need)? > > > > Thank you! > > > > Cheers, > > -Felipe Gasper > > > > Vim's 'columns' setting includes the line number (if any), whose width > varies according to how many lines are in the file and on the 'numberwidth' > setting. No matter which options you set, if you are running Vim in an > 80-column-wide terminal, you won't be able to get 80 columns for the text > plus some additional columns for the line number. Otherwise, if your screen > is wide enough, and your Vim is compiled with +float, you can get the width > of the linenumber as (untested) > > &l:nu?(max([&l:numberwidth,floor(log10(line('$')))+2])):0 > > floor(log10(n)) should be one less than the number of decimal digits > needed to write the number n, and +2 because we add back not only that "one > less" but also the single empty column between the line number and the > text. > > > > Add the value of the above expression to the desired textwidth (here > 80), set 'columns' to the sum of both, then check if you got what you > wanted (because setting 'columns' is limited by the actual available width: > if I try to set it to 999 it will actually be set to only the number of > characters that can be displayed onscreen). > > Ah, cool! > > Is there a vim event I could hook into for “when a line is added or > removed”? > > Thank you! > > -FG I don't see anything obvious. You might want to check the autocommands described at lines 372 and following of ":help autocmd.txt" (TextChanged, TextChangedI, etc.) but keep a "saved value" of the number of lines i.e. line('$') because if it didn't change you can return early. Or you might set a flag from a 'statusline' setting, but handle it elsewhere because 'statusline' is evaluated very often and for every (split) window. Best regards, Tony. -- -- You received this message from the "vim_mac" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_mac" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_mac+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/vim_mac/5c9bbaf4-9b30-4499-b1c8-f9ac47647b2bn%40googlegroups.com.