VsVim / VsVim

Vim Emulator Plugin for Visual Studio 2015+
Other
3.66k stars 398 forks source link

Disable caps lock for normal mode #2953

Open dcraig327 opened 2 years ago

dcraig327 commented 2 years ago

Feature category

Is your feature request related to a problem? Please describe. I'm always frustrated when I type

w,w,cw,CapsLock,WIDTH,ESC,J,J,J,ESC,CapsLock,u,u,u

to forget that I've turned on CapsLock. Vim, being terminal bound, struggles here and can't provide a solution that will work on all platforms. I could show you some C/C++ libs filled with ALL_CAPS macros that essentially require you use CapsLock for them. That snippet of keypresses above, imagine doing that 15 times in a row to enter different strings in ALL_CAPS.

Describe the solution you'd like I'm requesting a solution: Turn off CapsLock when entering normal mode or at the very least when going from insert mode into normal mode.

Describe alternatives you've considered Visual Studio and therefore VsVim only function natively on Windows right? AutoHotkey would be my goto here. Yet, I can't install AutoHotkey on every computer I use.

Additional context Vim can't do this natively right. I can't even name one plugin that does this as each would be platform dependent. Detecting the state of CapsLock is the issue.

dcraig327 commented 2 years ago

Here's a autohotkey script to disable caps when going from insert into normal mode to demo the functionality.

#IfWinActive, ahk_exe devenv.exe
Esc::
  state := GetKeyState("Capslock", "T")  ; 1 if CapsLock is ON, 0 otherwise.

  if state = 1
  {
    SetCapsLockState, Off
  }
  Send {ESC}
  return
injust90 commented 1 year ago

This feature could interfere with the intended functionality of CAPSLOCK.

Can this issue be closed? @jaredpar