ฉันพบวิธีปิดการล็อกตัวพิมพ์ใหญ่ในโหมดปกติโดยอัตโนมัติ (แม้ว่าจะใช้งานได้เฉพาะใน Linux)
โซลูชันที่สร้างด้วยปลั๊กอินไม่ได้พิจารณาว่าคุณสามารถเข้าสู่โหมดปกติได้มากกว่าหนึ่งวิธี (นั่นคือจากการแทรกเป็นปกติ) ตัวอย่างเช่นจากโหมดคำสั่ง
ที่จริงแล้วไม่มีเหตุการณ์การเติมข้อความอัตโนมัติที่เปิดใช้งานเมื่อเข้าสู่โหมดปกติดังนั้นเหตุการณ์ที่ฉันใช้แทนคือCursorHold
เหตุการณ์ซึ่งจะเปิดใช้งานเมื่อคุณไม่ได้พิมพ์ในโหมดปกติ
au CursorHold * call TurnOffCaps()
set updatetime=10
คุณตั้งค่าเวลาอัปเดตเป็นจำนวนน้อยมากดังนั้นจึงจะเปิดใช้งานเสมอก่อนที่คุณจะมีโอกาสพิมพ์อะไรก็ได้
function TurnOffCaps()
let capsState = matchstr(system('xset -q'), '00: Caps Lock:\s\+\zs\(on\|off\)\ze')
if capsState == 'on'
silent! execute ':!xdotool key Caps_Lock'
endif
endfunction