Tôi đã gặp sự cố tương tự khi đặt điểm đánh dấu con trỏ, nhưng lỗi của tôi là do lệnh mksession mà tôi đang sử dụng để lưu thông tin phiên trong khi thoát vim. Phiên này sau đó sẽ tự động được khôi phục trong quá trình khởi động chương trình, nếu nó chạy mà không có bất kỳ đối số tệp nào.
Nếu bất kỳ ai có thiết lập .vimrc như thế này, bạn có thể thêm phần sau vào .vimrc để đặt đánh dấu dòng con trỏ một cách chính xác: -
function s:SetCursorLine()
set cursorline
hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()
Một chút giải thích tại sao điều này hoạt động. Cùng với các thông tin về bộ đệm và cửa sổ khác nhau, mksession lưu tên colorcheme hiện tại. Điều này được khôi phục trong quá trình khởi động chương trình thông qua khôi phục phiên. Tuy nhiên, vì quá trình khôi phục phiên thường được thực hiện sau khi .vimrc đã được chạy (thường sử dụng một hàm được gọi thông qua 'autocmd VimEnter *'), cài đặt tô sáng dòng con trỏ trong .vimrc được đặt lại theo mặc định cho các màu được khôi phục.
Hàm trên, được gọi thông qua autocmd, sẽ được chạy sau khi quá trình khởi tạo hoàn tất và do đó thiết lập thành công điểm đánh dấu dòng con trỏ.
HTH.