git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 2/3] mergetools: vimdiff: fix single tab mode, single window mode and colors

From
Fernando Ramos <greenfoo@u92.eu>
Date
Aug 8, 2022, 18:14 UTC
Message-ID
<YvFSgjK0P5kzoOfg@zacax395.localdomain>
In-Reply-To
<CAMP44s3v_4PdOfaviXCxik1LL5k_kkmZ2Yp=+Qfb8CqyNCdMUQ@mail.gmail.com>
On 22/08/08 01:37AM, Felipe Contreras wrote:
Show 13 quoted lines
> On Mon, Aug 8, 2022 at 12:35 AM Fernando Ramos <greenfoo@u92.eu> wrote:
> >
> > vimdiff3 was introduced in 7c147b77d3 (mergetools: add vimdiff3 mode,
> > 2014-04-20) and then partially broken in 0041797449 (vimdiff: new
> > implementation with layout support, 2022-03-30) in two ways:
> >
> >     - It does not show colors unless the user has "set hidden" in his
> >       .vimrc file
> >
> >     - It prompts the user to "Press ENTER" every time it runs.
> 
> For the record, in my version these two issues are fixed in a much simpler way:
> 
Yes, it was simpler but remember it had two small issues:
  1. In "vimdiff3" mode, if you switch to buffers #2 or #3, highlighting
     disappears.
  2. It treats a single tab with a single window as a special case, when in
     fact it is just a subcase of a layout with many tabs where one of them
     contains just one window.
     The new patch series makes no distinction between them by keeping track
     of the number of windows opened on each tab which, as you noted, adds
     some extra complexity (but needed complexity nevertheless if we want to
     have highlighting enabled in all cases)
Show 10 quoted lines
> >         # Add an extra "-c" option to move to the first tab (notice that we
> >         # can't simply append the command to the previous "-c" string as
> >         # explained here: https://github.com/vim/vim/issues/9076
> >
> > -       FINAL_CMD="-c \"$CMD\" -c \"tabfirst\""
> > +       FINAL_CMD="-c \"set hidden diffopt-=hiddenoff diffopt-=closeoff\" -c \"$CMD\" -c \"tabfirst\""
> >  }
> 
> These diffopt settings look awfully familiar.
> 
I would go as far as saying they are the same :)

As you explained, it is better to keep these options explicitly set so that buffer diff'ing works in all cases.

Notice that in this new patch series, however, these options apply to all layouts (and not just to "vimdiff3"), as we want highlighting to also be enabled in multi-tab single window layouts.

PS: I have been testing many layouts today with and without an empty .vimrc and
everything seems to work. But it would be great if others reading this did the
same to make sure there are no other strange vim configuration options that
affect the way diffs are displayed (as, unfortunately, we have found out in the
past more than once!)
Thanks!
Previous: Felipe ContrerasNext: Felipe Contreras
Message 24 of 28 in “mergetools: vimdiff: regression fix and reorg”
  1. 0/9 mergetools: vimdiff: regression fix and reorgFelipe Contreras, Aug 7, 2022
  2. 1/9 mergetools: vimdiff: fix commentFelipe Contreras, Aug 7, 2022
  3. 2/9 mergetools: vimdiff: shuffle single window caseFelipe Contreras, Aug 7, 2022
  4. Fernando RamosAug 7, 2022
  5. Felipe ContrerasAug 7, 2022
  6. 3/9 mergetools: vimdiff: add get_buf() helperFelipe Contreras, Aug 7, 2022
  7. 4/9 mergetools: vimdiff: make vimdiff3 actually workFelipe Contreras, Aug 7, 2022
  8. 6/9 mergetools: vimdiff: fix for diffoptFelipe Contreras, Aug 7, 2022
  9. 5/9 mergetools: vimdiff: silence annoying messagesFelipe Contreras, Aug 7, 2022
  10. 7/9 mergetools: vimdiff: cleanup cruftFelipe Contreras, Aug 7, 2022
  11. 8/9 mergetools: vimdiff: fix single window modeFelipe Contreras, Aug 7, 2022
  12. 9/9 mergetools: vimdiff: use vimdiff for vimdiff3Felipe Contreras, Aug 7, 2022
  13. Fernando RamosAug 7, 2022
  14. Fernando RamosAug 7, 2022
  15. Felipe ContrerasAug 7, 2022
  16. Fernando RamosAug 7, 2022
  17. 1/2 vimdiff: fix single tab mode, single window mode and colorsFernando Ramos, Aug 7, 2022
  18. 2/2 vimdiff: update unit testsFernando Ramos, Aug 7, 2022
  19. Felipe ContrerasAug 7, 2022
  20. 0/3 mergetools: vimdiff: regression fix (vimdiff3 mode)Fernando Ramos, Aug 8, 2022
  21. 1/3 mergetools: vimdiff: fix commentFernando Ramos, Aug 8, 2022
  22. 2/3 mergetools: vimdiff: fix single tab mode, single window mode and colorsFernando Ramos, Aug 8, 2022
  23. Felipe ContrerasAug 8, 2022
  24. Fernando RamosAug 8, 2022
  25. Felipe ContrerasAug 8, 2022
  26. Fernando RamosAug 8, 2022
  27. Felipe ContrerasAug 9, 2022
  28. 3/3 mergetools: vimdiff: update unit testsFernando Ramos, Aug 8, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.