Я думаю, что причиной поведения, которое вы наблюдаете, является именно то, что описано здесь .
Другими словами, что-то вроде этого (что rhs не имеет значения)
nnoremap <C-PageUp> :echo "hello"<CR>
не будет работать, так как Vim теперь не имеет, какая escape-последовательность соответствует коду ключа <C-PageUp>
.
Поэтому вы можете предоставить ему escape-последовательность, соответствующую Ctrl-PageUp , как в
nnoremap ^[[5^ :echo "hello"<CR>
, где первые два символа escape-последовательности, ^[
, являются частью единой единицы, которая соответствует Escape (поэтому escape seqeunce).
Вы можете получить всю последовательность (которая может отличаться от моей в вашем терминале, кстати) из режима вставки, нажав Ctrl + V Ctrl + PageUp ; однако, учитывая значение ^[
, вы также можете использовать Ctrl + V Escape и затем набрать [ 5 ^ вручную.
К сожалению, установка set <C-PageUp>=^[[5^
вызывает ошибку E518
. Я не знаю почему.
С другой стороны, другое решение заключается в следующем (снова описано здесь )
set <F37>=^[[5^
nnoremap <F37> :echo "ciao"<CR>
, где <F37>
является одним из дополнительный код функции Vim обеспечивает. Я понятия не имею, где эта вещь находится в :help
.