Vim配置:实现光标垂直移动时保持当前列位置
实现Vim中j键垂直对齐移动
要让j键按下后光标垂直移动到下一行对应列(而非行首),可以通过以下配置实现:
1. 关闭startofline选项
Vim默认j/k键会保持光标在同一列,但开启startofline后会跳转到行首。在~/.vimrc或init.vim中添加:
set nostartofline
重启Vim后,j键将默认移动到下一行的同一列位置。
2. 支持移动到虚拟空白列
如果下一行对应列无内容,希望光标仍能定位到该位置(而非行尾/行首),开启虚拟编辑选项:
set virtualedit=all
此设置允许光标移动到屏幕任意位置,包括行尾后的虚拟空间,完全实现垂直对齐。
3. 自定义j键映射(可选)
若不想全局修改默认选项,可单独映射j键强制保持列位置:
nnoremap j :execute "normal! " . v:count1 . "j"<CR>
该映射会忽略startofline影响,执行默认j键行为。
测试场景:光标在nisi的某个字符上,按下j键后将直接跳转到下一行对应列的位置——若该位置有内容(如Pellentesque的对应字符)则停在该处,若为空白则停在对应空白列。
内容的提问来源于stack exchange,提问作者CAVP33
相关产品推荐
相关产品推荐

