VIM中控制上下移动时保持光标水平位置的set设置是什么?
Vim上下移动保持光标水平位置的设置及VSCodeVim适配
控制Vim中使用j/k上下移动时保持光标水平位置的核心设置是startofline:
- 执行
set nostartofline(缩写set nosol)后,j/k跳转时光标会维持当前的列位置,不会自动跳到目标行的行首或第一个非空白字符。 - 若开启
set startofline(set sol),j/k移动后光标会定位到目标行的起始位置,这就是你在VSCodeVim中遇到的异常情况。
你的原生Vim(MINGW64/Unix版本)能正常工作,应该是.vimrc里已经配置了set nostartofline;而VSCodeVim插件可能默认启用了startofline,或者存在配置兼容问题,导致未读取到你的.vimrc设置。
针对VSCodeVim的解决方法:
- 直接在VSCode设置中调整:
- 按下
Ctrl+,打开设置面板 - 搜索
vim.startofline - 将该选项设为
false,即可实现和原生Vim一致的光标行为。
- 按下
示例场景代码:
int variable1[*4]; // 光标初始在“4”上 char c[3]*; // 按两次“j”键 int variable2[*6]; // 应定位到“6”(在MINGW和Unix版VIM中可实现) int varia*ble2[6]; // 但在VSCodeVim中会定位到此处
内容的提问来源于stack exchange,提问作者MrMattBusby
相关产品推荐
相关产品推荐

