Tive um problema semelhante ao definir o realce da linha do cursor, mas o meu foi devido ao comando mksession que estava usando para salvar as informações da sessão durante a saída do vim. Essa sessão é restaurada automaticamente durante a inicialização do programa, se for executado sem nenhum argumento de arquivo.
Se alguém tiver .vimrc configurado como este, você pode adicionar o seguinte ao .vimrc para definir o realce da linha do cursor corretamente: -
function s:SetCursorLine()
set cursorline
hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()
Um pouco de explicação de por que isso funciona. Junto com várias informações de buffer e janela, mksession salva o nome do esquema de cores atual. Isso é restaurado durante a inicialização do programa por meio da restauração da sessão. No entanto, como a restauração da sessão normalmente é feita depois que .vimrc foi executado (normalmente usando uma função chamada por meio de 'autocmd VimEnter *'), a configuração de realce da linha do cursor em .vimrc é redefinida pelo padrão para o esquema de cores restaurado.
A função acima, chamada por meio do autocmd, será executada após a conclusão de toda a inicialização e, portanto, define com êxito o realce da linha do cursor.
HTH.