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
相关产品推荐
相关产品推荐

