如何禁用Neovim中S-Up触发PgUp、S-Down触发PgDown的默认行为
解决Neovim中/默认映射为PgUp/PgDown的问题
核心原因
Neovim的终端UI默认会将<S-Up>和<S-Down>这类修饰键组合转译为<PageUp>/<PageDown>,这属于终端输入处理层面的行为,并非普通Vim映射,因此unmap命令无法生效。
具体解决方法
在Neovim配置文件(init.vim或init.lua)中添加对应配置:
VimScript(适用于init.vim)
" 禁用<S-Up>转译为PgUp tnoremap <S-Up> <S-Up> " 禁用<S-Down>转译为PgDown tnoremap <S-Down> <S-Down>
Lua(适用于init.lua)
-- 禁用<S-Up>转译为PgUp vim.keymap.set('t', '<S-Up>', '<S-Up>') -- 禁用<S-Down>转译为PgDown vim.keymap.set('t', '<S-Down>', '<S-Down>')
原理说明
通过在终端模式(t模式)下将<S-Up>/<S-Down>映射回自身,强制Neovim保留原始按键序列,不再自动转译为翻页键。完成配置后,即可在普通/插入等模式下自定义这两个按键的映射。
验证方式
配置生效后,在Neovim中执行:verbose tnoremap <S-Up>,若能看到自己设置的映射,说明配置成功,此时按下<S-Up>不会再触发PgUp的行为。
内容的提问来源于stack exchange,提问作者RodolfoAP
相关产品推荐
相关产品推荐

