有没有办法将 Caps_Lock 重新映射为 vscode 的 vim 上的转义键?
Is there a way to remap Caps_Lock to be the escape key on vscode's vim?
问题
我想在 Visual Studio 代码的 vim 扩展中使用 Caps_Lock 作为退出插入模式的键。我已经用 Xmodmap 重新映射了 Xorg 中的键,但是 Visual studio 似乎并不重要。
我的 VScode 设置
如您所见,我已经尝试使用 "vim.insertModeKeyBindings"
,但它只会禁用 Escape 键,让我认为 Caps_lock 有另一个键 name/keysym,但我不能'好像没找到
{
"editor.fontFamily": "'Inconsolata-g for Powerline'",
"editor.fontSize": 16,
"liveshare.authenticationProvider": "GitHub",
"vim.enableNeovim": true,
"code-runner.enableAppInsights": false,
"code-runner.runInTerminal": true,
"workbench.startupEditor": "newUntitledFile",
"workbench.editorAssociations": [
{
"viewType": "jupyter.notebook.ipynb",
"filenamePattern": "*.ipynb"
}
],
"workbench.colorTheme": "BeardedTheme Anthracite",
"extensions.autoUpdate": "onlyEnabledExtensions",
"vim.vimrc.enable": true,
"vim.vimrc.path": "$HOME/.config/nvim/init.vim",
"editor.fontWeight":"bold",
"vim.insertModeKeyBindings": [
{
"before": ["<Esc>"],
"after": ["<Caps_Lock>"]
}
]
}
我想说的另一件事是我已经有 j,k
和它们的组合来退出插入模式。这是默认值吗?
非常感谢任何提供帮助的人!!
解决方案
由于此问题出现在 Linux 中,并且我已经更改了 Xmodmap 中的设置,因此 VScode 不考虑使用 xkbmap 重新映射似乎是一个已知问题, 应该是通过在 VScode 的 settings.json 中添加 "keyboard.dispatch": "keyCode"
并重新打开 VS.
来修复
我看到你已经找到了一个可能的解决方法,但我想知道 'xcape' 工具是否
(apt install xcape
) 可以在您的 bashrc 中提供以下帮助吗?
# set capslock to escape key
setxkbmap -option ctrl:nocaps
xcape -e '#66=Escape'
按 CTRL + SHIFT + P 打开命令面板。
然后,单击任意命令上的设置按钮。
这将打开键绑定。
搜索extension.vim_escape
将此更改为 CAPS_LOCK。
The only issue with this is that it still capitalises things when you re-enter insert mode, so you have to press it twice.
问题
我想在 Visual Studio 代码的 vim 扩展中使用 Caps_Lock 作为退出插入模式的键。我已经用 Xmodmap 重新映射了 Xorg 中的键,但是 Visual studio 似乎并不重要。
我的 VScode 设置
如您所见,我已经尝试使用 "vim.insertModeKeyBindings"
,但它只会禁用 Escape 键,让我认为 Caps_lock 有另一个键 name/keysym,但我不能'好像没找到
{
"editor.fontFamily": "'Inconsolata-g for Powerline'",
"editor.fontSize": 16,
"liveshare.authenticationProvider": "GitHub",
"vim.enableNeovim": true,
"code-runner.enableAppInsights": false,
"code-runner.runInTerminal": true,
"workbench.startupEditor": "newUntitledFile",
"workbench.editorAssociations": [
{
"viewType": "jupyter.notebook.ipynb",
"filenamePattern": "*.ipynb"
}
],
"workbench.colorTheme": "BeardedTheme Anthracite",
"extensions.autoUpdate": "onlyEnabledExtensions",
"vim.vimrc.enable": true,
"vim.vimrc.path": "$HOME/.config/nvim/init.vim",
"editor.fontWeight":"bold",
"vim.insertModeKeyBindings": [
{
"before": ["<Esc>"],
"after": ["<Caps_Lock>"]
}
]
}
我想说的另一件事是我已经有 j,k
和它们的组合来退出插入模式。这是默认值吗?
非常感谢任何提供帮助的人!!
解决方案
由于此问题出现在 Linux 中,并且我已经更改了 Xmodmap 中的设置,因此 VScode 不考虑使用 xkbmap 重新映射似乎是一个已知问题, 应该是通过在 VScode 的 settings.json 中添加 "keyboard.dispatch": "keyCode"
并重新打开 VS.
我看到你已经找到了一个可能的解决方法,但我想知道 'xcape' 工具是否
(apt install xcape
) 可以在您的 bashrc 中提供以下帮助吗?
# set capslock to escape key
setxkbmap -option ctrl:nocaps
xcape -e '#66=Escape'
按 CTRL + SHIFT + P 打开命令面板。
然后,单击任意命令上的设置按钮。
这将打开键绑定。
搜索extension.vim_escape
将此更改为 CAPS_LOCK。
The only issue with this is that it still capitalises things when you re-enter insert mode, so you have to press it twice.