Как переопределить последовательность нажатий клавиш?
Хочу переопределить клавиши таким образом, чтобы, например:
space + u делало Ctrl + u
Но при этом:
space + uu делало Ctrl + uu
Допустим в конфиге следующее содержимое:
nnoremap <space>u <C-u>
Когда я нажимаю space + u, то первый раз работает всё нормально, но когда я второй раз нажимаю u (не отпуская space с первого раза), то u работает как undo.
Но я хочу, чтобы c клавишей space всё работало так же как и с клавишей Ctrl, когда я один раз зажимаю Ctrl, а затем сколько угодно раз нажимаю u при зажатом Ctrl.
Мне кажется что вы хотите чего-то очень странного. Клавиши ctrl, alt, shift, mod, win и прочие - это клавиши-модификаторы, которые отслеживаются параллельно "обычным" цифро-буквенным клавишам (в т.ч. и space). И сказать, что теперь space у нас клавиша-модификатор - это явно надо идти ниже уровня вима. И именно поэтому nnoremap u работает не так как - нажатие u расценивается вимом как последовательное нажатие: сначала , потом u, можете убедиться.
Поддеживаю SilentFl, но, как вариант (и если используете *nix), можете попробовать использовать xcape для задания пробелу двойственного поведения: как Ctrl в сочетании с другой клавишей, и как пробел при одиночном нажатии.
Не вижу проблемы: nnoremap uu
Когда нажмёшь пробел и два раза u всё отработает как и задумано. Но также будет отрабатывать, если нажмёшь пробел + u и ещё раз пробел + u.
То есть, второе будет правильное поведение, первое - побочное.
И да, у тебя будет отрабатывать это как одна команда, а не как две отдельные.