You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim中使用Ctl-U/Ctl-D翻页时如何保持光标垂直位置不变

Vim 翻页保持光标列位置配置方案

Vim 中<C-u>(上翻页)、<C-d>(下翻页)默认会在翻页完成后将光标跳转到当前行的第一个非空白字符,这是你翻页后光标列位置偏移的原因。

临时测试

直接在Vim命令行输入以下命令即可立即生效,重启Vim后会恢复默认:

:set nostartofline

永久生效配置

将以下内容写入你的Vim配置文件(一般为~/.vimrc,Neovim用户为~/.config/nvim/init.vim)即可:

方案1:全局所有跳转操作都保持光标列位置

仅需添加一行配置即可,会影响包括翻页、gg/G跳转等所有跳转类操作的光标行为:

set nostartofline

方案2:仅针对/翻页操作生效

如果不希望影响其他跳转操作的默认行为,可以使用自定义映射仅修改翻页快捷键逻辑:

" 上翻页保持列位置
nnoremap <C-u> :setlocal nostartofline<CR><C-u>:setlocal startofline<CR>
" 下翻页保持列位置
nnoremap <C-d> :setlocal nostartofline<CR><C-d>:setlocal startofline<CR>

配置完成后重启Vim或者执行:source ~/.vimrc(对应你的配置文件路径)即可生效,后续翻页时光标会始终停留在原有的垂直列位置,你可以直接对齐查看Python代码中相同缩进层级的代码块结构。

内容的提问来源于stack exchange,提问作者Ying Xiong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:48:00