ฉันมีปัญหาที่คล้ายกันในการตั้งค่าไฮไลต์เคอร์เซอร์ไลน์ แต่ของฉันเกิดจากคำสั่ง mksession ที่ฉันใช้เพื่อบันทึกข้อมูลเซสชันระหว่างการออกเป็นกลุ่ม จากนั้นเซสชันนี้จะถูกเรียกคืนโดยอัตโนมัติในระหว่างการเริ่มต้นโปรแกรมหากรันโดยไม่มีข้อโต้แย้งของไฟล์ใด ๆ
หากใครมีการตั้งค่า. vimrc เช่นนี้คุณสามารถเพิ่มสิ่งต่อไปนี้ใน. vimrc เพื่อตั้งค่าไฮไลต์เคอร์เซอร์ได้อย่างถูกต้อง: -
function s:SetCursorLine()
set cursorline
hi cursorline cterm=none ctermbg=darkblue ctermfg=white
endfunction
autocmd VimEnter * call s:SetCursorLine()
คำอธิบายเล็กน้อยว่าเหตุใดจึงได้ผล นอกเหนือจากข้อมูลบัฟเฟอร์และหน้าต่างต่างๆแล้ว mksession จะบันทึกชื่อ colorscheme ปัจจุบัน สิ่งนี้ถูกกู้คืนระหว่างการเริ่มต้นโปรแกรมผ่านการคืนค่าเซสชัน อย่างไรก็ตามเนื่องจากโดยทั่วไปแล้วการคืนค่าเซสชันจะเสร็จสิ้นหลังจากเรียกใช้. vimrc แล้ว (โดยทั่วไปจะใช้ฟังก์ชันที่เรียกผ่าน 'autocmd VimEnter *') การตั้งค่าไฮไลต์เคอร์เซอร์ใน. vimrc จะถูกรีเซ็ตโดยค่าเริ่มต้นสำหรับ colorcheme ที่เรียกคืน
ฟังก์ชันข้างต้นซึ่งเรียกใช้ผ่าน autocmd จะถูกเรียกใช้หลังจากการเริ่มต้นทั้งหมดเสร็จสมบูรณ์ดังนั้นจึงตั้งค่าไฮไลต์เคอร์เซอร์ได้สำเร็จ
HTH.