Miałem podobny problem z ustawieniem podświetlenia linii kursora, ale mój był spowodowany poleceniem mksession, którego użyłem do zapisania informacji o sesji podczas wyjścia z vima. Ta sesja jest następnie automatycznie przywracana podczas uruchamiania programu, jeśli jest uruchomiona bez żadnych argumentów plikowych.
Jeśli ktoś ma taką konfigurację .vimrc, możesz dodać do .vimrc następujące polecenie, aby poprawnie ustawić podświetlenie linii kursora: -
function s:SetCursorLine()
set cursorline
hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()
Trochę wyjaśnienia, dlaczego to działa. Wraz z różnymi informacjami o buforze i oknie, mksession zapisuje bieżącą nazwę schematu kolorów. Jest to przywracane podczas uruchamiania programu poprzez przywracanie sesji. Jednakże, ponieważ przywracanie sesji jest zwykle wykonywane po uruchomieniu .vimrc (zazwyczaj przy użyciu funkcji wywołanej przez 'autocmd VimEnter *'), ustawienie podświetlenia linii kursora w .vimrc jest resetowane domyślnie dla przywróconego schematu kolorów.
Powyższa funkcja, wywołana przez autocmd, zostanie uruchomiona po zakończeniu całej inicjalizacji i dlatego pomyślnie ustawia podświetlenie linii kursora.
HTH.