如何在 Ubuntu 上安装的 Vim 中将 CapsLock 重新映射到 Esc(仅限控制台,无桌面环境)?

如何在 Ubuntu 上安装的 Vim 中将 CapsLock 重新映射到 Esc(仅限控制台,无桌面环境)?

目标是在 Ubuntu 上安装的 Vim 中将 CapsLock 重新映射为 Esc(仅限控制台,无桌面环境)。

此 Ubuntu 系统安装在虚拟专用服务器上。我正在使用 Putty 从装有 Windows 10 的家用笔记本电脑登录到此服务器。

每个人都在谈论将这个 CapsLock 键映射到 Vim 中的 Esc,但我无法找到实际的行,需要将 2 写入 $HOME/.vimrc 文件中。

这是我自己尝试过的,但除了第一行添加行号之外,这些都不起作用:

set number

inoremap <Caps> <Esc>
inoremap <Caps_Lock> <Esc>
inoremap <CapsLock> <Esc>

目标是仅在 Vim 中将 CapsLock 重新映射到 Esc,而不是在整个 Ubuntu 服务器中。

我检查过,CapsLock 在 Vim 中工作正常,并且在锁定时变为大写。

我搜索过很多地方,例如: https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-教程(第1部分) 本指南的所有 3 部分以及这里以及。

就像所有内容都写在那里一样:映射“ii”、“jj”、“jk”、“jw”不同的 Ctrl 和 Shift 组合。除 CapsLock 之外的所有内容都重新映射为 Esc。

???为什么 ???

为什么在 Vim 中将 CapsLock 重新映射到 Esc 如此困难? 这几乎是我的问题,但不幸的是在 Windows 操作系统上。

从我的问题下面的评论中我了解到,仅在 Vim 中将 CapsLock 映射到 Esc 是不可能的。

我也读过这个主题:如何在 Vim 中使用 CapsLock 代替 Escape?

接受的答案指出:“为了在控制台中重新映射,如果您的发行版使用systemd,您可以使用自定义键盘布局,/etc/vconsole.conf拱门维基”。

我猜Ubuntu使用的是systemd所以我准备接受将 CapsLock 映射到安装在我的 VPS 上的整个 Ubuntu 中的 Esc 键的答案,提供我家的Windows机器按键映射,保持不变。

我已经运行了这个:

michal@localhost:~$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

接下来我应该做什么?

/etc/vconsole.conf我想我的 Ubuntu VPS 上没有这个文件。我应该自己创建它,还是应该默认存在?

答案1

一个简单的替代方法是将其添加到您的 vimrc 文件中

imap ii <Esc>

这里我使用 ii( 2 'i's ) 而不是 Escape 返回到正常模式。

在英语中,您可能很少遇到带有两个连续 ii 的单词,因此您不会意外进入正常模式。

如果您愿意,您也可以将 ii 替换为任何其他键,但据我所知并且我已经尝试过,它不适用于 Caps Lock、Shift、Ctrl 和 Alt 等键,因为它们需要任何其他键才能提供某些功能有意义的。

相关内容