-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't bind key sequences (multiple leaders?) to actions in Normal Mode? #2955
Comments
It's the same with 'h', 'h':
The following don't work.
However, 'g' 'g' works.
|
For this issue, I traced the code. The basic reason is 'j' & 'h' are moving focus command. They don't need to 'wait' the next key input. otherwise, the moving motion would be slow. I also found a workaround. If you don't need some moving focus command, just modify the code in "....vscode\extensions\vscodevim.vim-0.16.12\out\src\actions\motion.js"
After this modification, when you type 'j', vim would wait next input key. so your new key mapping will work. |
Hi @mystic01 , |
Refactor the Remapper and ModeHandler to allow better remapping experience. It will allow to remap operator keys, motion keys and multiple keys when the first key could be handled. Should fix the following issues (maybe more): VSCodeVim#4674 VSCodeVim#4464 VSCodeVim#3988 VSCodeVim#3768 VSCodeVim#3742 VSCodeVim#2975 VSCodeVim#2955 VSCodeVim#2234 VSCodeVim#2041 VSCodeVim#1870 VSCodeVim#1821 VSCodeVim#1579 VSCodeVim#1398 Needs more testing.
This is a pretty massive change; see pull request #4735 for full details Most notably: - Support for operator-pending mode, including remaps and a half-cursor decoration - Correct handling of ambiguous remaps with timeout - Correct handling of recursive special case when the RHS starts with the LHS - Correct handling of multi-key remaps in insert mode - Failed movements that occur partway through a remap stop & discard the rest of the remap - Implement `unmap` and `mapclear` in .vimrc Refs #463, refs #4908 Fixes #1261, fixes #1398, fixes #1579, fixes #1821, fixes #1835 Fixes #1870, fixes #1883, fixes #2041, fixes #2234, fixes #2466 Fixes #2897, fixes #2955, fixes #2975, fixes #3082, fixes #3086 Fixes #3171, fixes #3373, fixes #3413, fixes #3742, fixes #3768 Fixes #3988, fixes #4057, fixes #4118, fixes #4236, fixes #4353 Fixes #4464, fixes #4530, fixes #4532, fixes #4563, fixes #4674 Fixes #4756, fixes #4883, fixes #4928, fixes #4991, fixes #5016 Fixes #5057, fixes #5067, fixes #5084, fixes #5125
Am I missing something? From the documentation, It's possible to bind jj to in insert mode:
But trying to bind jj to something in normal mode doesn't work:
In VIM I usually bind numerous arbitrary characters as "leaders" like so (a and b in this random example)
But as far as I can tell, VSCodeVim only allows one global leader set as "vim.leader". For the life of me, I couldn't get this binding capability to work for Normal mode.
The text was updated successfully, but these errors were encountered: