Closed roel-v closed 2 years ago
What is the vim version?
:version
in vim should show smth like:
Included patches: 1-891
In GUI Vim with darkblue
, the expected value of hlget('CurSearch', 1)
is:
[{'id': 8, 'ctermfg': '0', 'name': 'CurSearch', 'term': {'reverse': v:true}, 'ctermbg': '14', 'guibg': '#0030ff', 'guifg': '#90fff0'}]
term=<any value>
is not supposed to have any effect in GUI Vim.
@roel-v could you show us what you get with hlget('CurSearch', 1)
?
:let @+ = hlget('CurSearch', 1)->string()
When I start gvim (with my regular vimrc) the value you requested is [{'id': 8, 'name': 'CurSearch', 'term': {'reverse': v:true}}] . Even when the first 3 lines of my vimrc are
colo darkblue set hlsearch finish
In both cases, if I do :colo darkblue, manually after startup, it becomes [{'id': 8, 'ctermfg': '123', 'name': 'CurSearch', 'term': {'reverse': v:true}, 'ctermbg': '27', 'guibg': '#0030ff', 'guifg': '#90fff0'}] .
@habamax I don't see those lines in :version . All I see is
@VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Jun 28 2022 13:09:53)
MS-Windows 32-bit GUI version with OLE support
Compiled by appveyor@APPVYR-WIN
Huge version with GUI. Features included (+) or not (-):
and then a bunch of vim and compiler flags like in my stackexchange post.
in my gvim for windows I can see this:
and runing gvim -Nu NONE +"colo darkblue"
shows CurSearch linked to Search:
Could you open :e $VIMRUNTIME/colors/darkblue.vim
and paste here first several lines?
" Name: darkblue
" Description: For those who prefer dark background
" Author: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Website: https://github.com/vim/colorschemes
" License: Same as Vim
" Last Updated: Fri 02 Sep 2022 09:40:36 MSK
" Generated by Colortemplate v2.2.0
set background=dark
hi clear
let g:colors_name = 'darkblue'
let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
and runing
gvim -Nu NONE +"colo darkblue"
shows CurSearch linked to Search:
Yes, that's what I get too (sorry if my earlier post was unclear). When I start gvim without loading vimrc, then manually load colo darkblue, it works as expected.
Could you open
:e $VIMRUNTIME/colors/darkblue.vim
and paste here first several lines?" Name: darkblue " Description: For those who prefer dark background " Author: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua> " Maintainer: Original author Bohdan Vlasyuk <bohdan@vstu.edu.ua> " Website: https://github.com/vim/colorschemes " License: Same as Vim " Last Updated: Fri 02 Sep 2022 09:40:36 MSK " Generated by Colortemplate v2.2.0 set background=dark hi clear let g:colors_name = 'darkblue' let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1
Awesome, this fixes my issue. (I only updated the let s:t_Co
It is already upstream for a month or two.
Closing as this is fixed in recent vim versions.
@roel-v you can grab latest vim for windows here: https://github.com/vim/vim-win32-installer/releases
Oh OK, thank you both for the time you spend on this. It didn't even occur to me that this could be an issue that would be fixed in a newer release.
That is why we were asking about the version you use. :-)
Followup from https://stackoverflow.com/questions/74473619/vim-search-no-longer-highlights-word-under-cursor .
Basically, in vim9 with the darkblue colorscheme (although the same happens with blue, desert and koehler - haven't tried others but I think it's universal), when hlsearch is set, the search hit under the cursor isn't highlighted. This is because CurSearch is set to term=reverse, instead of linking to 'Search' as it should. Strangely, when doing 'background=dark' manually after startup, CurSearch is set correctly and the problem disappears.
I tried with a blank vimrc (by starting gvim.exe with -u NONE) and then it works correctly, so it has to have something to do with the way my vimrc interacts with the vim9 way of defining color schemes (since this worked correctly for vim versions before 9 for me).
I tried adding colo=darkblue as the last line in my vimrc, that didn't help.
I also tried 'bisecting' my vimrc by putting 'finish' statements in, to pinpoint which line causes the problem to appear. If I put 'finish' before the "colo darkblue" line, everything works fine (well I get the default color scheme of course, but the highlighting behaviour is OK). If I put it right after 'colo darkblue', I get the color scheme but wrong behaviour.
So then I put this at the top of the vimrc:
colo darkblue set hlsearch finish
and I also tried with the first two lines swapped, but both gave me the wrong result. So I feel that I've pretty much ruled out any other parts of my vimrc to be the culprit.
At this point I can't really think of anything else that I have wrong in my own setup to be the problem. Any pointers appreciated.