习惯了使用 vim 后,便想着尽可能地使用 vim ,而工作学习又离不开 VS Code。所幸 VS Code 也支持 vim,开开心心地安装好 vim 模拟器插件后,却发现 vim 中的行跳转只能在实际行之间进行。
VS Code 中的 vim 模拟器如下图所示,如果 VS Code 中启用 line wrap
后,同一行会自动在屏幕上显示多行,但是按下 vim 中行间移动键 j
,k
后,光标只能在实际行之间跳转。这对写代码没什么影响,因为很少有这么长一行的代码,但对于写 Latex 或 Markdown 文章来说,这样就难以快速定位想写作的位置。
网上搜索一番,才发现 vim 中会区分实际行和屏幕行,相应的移动命令也有所不同。
命令 | 光标动作 |
---|---|
j | 向下移动一个实际行 |
gj | 向下移动一个屏幕行 |
k | 向上移动一个实际行 |
gk | 向上移动一个屏幕行 |
为了跳转方便,可以把gj/gk
映射成j/k
,可以在 VS Code 中作出以下设置。
-
按下
image.pngCtrl+Shift+P
打开命令面板,并选择 Open Settings (JSON);
-
添加键位映射:将以下片段加入设置中。
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["j"],
"after": ["g", "j"]
},
{
"before": ["k"],
"after": ["g", "k"]
}
]
网友评论