VIM Colemak yank 重新映射问题
VIM Colemak yank remapping issues
所以我在我的 Mac (Colemak) 上使用备用键盘布局,并且我通过编辑 .vimrc
文件(仅两行)为 colemak 布局重新映射 vim这样你就可以得到图片):
noremap y o
noremap p r
... (and so on)
所以现在,在 VIM 中按下 L 键(在 QWERTY 布局上)类似于 colemak 上的 I,它按原样打开插入模式。然而,当我点击 y y 来抽出一行时,它会执行 y 然后 o。我现在需要重新映射 y y 到 o 吗?
:map o yy
但这意味着在编辑模式下 o 会变成 y y,不是吗?如果我错了请纠正我并帮助我解决这个怪癖。
您的 .vimrc
文件中的某处看起来您的 y -> o
映射仅适用于 operator-pending mode,因为根据您编写的第一个 y 注册为 y.
您可以通过以下几种方式解决此问题:
- Unmap 操作员模式专用键:
:ounmap y
- 将
o -> yy
映射到only normal mode(这样不会影响你的编辑):
:nnoremap o yy
- 只需使用 Vim 的 Y 的原生映射(或 Y 的 Colemak 等价物)来抽取整个线。
所以我在我的 Mac (Colemak) 上使用备用键盘布局,并且我通过编辑 .vimrc
文件(仅两行)为 colemak 布局重新映射 vim这样你就可以得到图片):
noremap y o
noremap p r
... (and so on)
所以现在,在 VIM 中按下 L 键(在 QWERTY 布局上)类似于 colemak 上的 I,它按原样打开插入模式。然而,当我点击 y y 来抽出一行时,它会执行 y 然后 o。我现在需要重新映射 y y 到 o 吗?
:map o yy
但这意味着在编辑模式下 o 会变成 y y,不是吗?如果我错了请纠正我并帮助我解决这个怪癖。
您的 .vimrc
文件中的某处看起来您的 y -> o
映射仅适用于 operator-pending mode,因为根据您编写的第一个 y 注册为 y.
您可以通过以下几种方式解决此问题:
- Unmap 操作员模式专用键:
:ounmap y
- 将
o -> yy
映射到only normal mode(这样不会影响你的编辑)::nnoremap o yy
- 只需使用 Vim 的 Y 的原生映射(或 Y 的 Colemak 等价物)来抽取整个线。