如何在 Vim 中使用 CapsLock 而不是 Escape?

Raj*_*war 13 vim keyboard-shortcuts

我想将我的映射CapsLockEscape. 如何代表CapsLock.vimrc

我知道将空间映射到命令我会做这样的事情:

:map <space> viw
Run Code Online (Sandbox Code Playgroud)

如果不进行注册表破解,我将如何映射CapsLockEscapeVim 命令?

如果没有黑客或其他软件就无法做到这一点,我想将快捷方式分配jjESCin .vimrc。我目前正在这样做:

inoremap jj <esc>
Run Code Online (Sandbox Code Playgroud)

但是,如果我处于可视模式,这将不起作用。我怎样才能jj模拟转义键?

jas*_*yan 13

我不认为你可以CapsLock从 Vim 内部映射。您可以使用setxkbmap以下命令在 X 内重新映射它:

setxkbmap -option caps:swapescape
Run Code Online (Sandbox Code Playgroud)

对于控制台中的重新映射,如果您的发行版使用systemd,您可以使用Arch Wiki 中/etc/vconsole.conf所述的自定义键盘布局,对于其他初始化系统,请参阅此 U&L 答案

  • 你如何设置它以便两者都逃脱? (5认同)

小智 8

如果您想同时映射Caps LockandEscapeEscape,而不是交换它们,请使用

setxkbmap -option caps:escape
Run Code Online (Sandbox Code Playgroud)

而不是...:swapescape.

setxkbmap -option
Run Code Online (Sandbox Code Playgroud)

要清除任何现有选项,则上述方法应该有效。