如何在 bash 的 vi 模式下切换光标下的单词大小写?

如何在 bash 的 vi 模式下切换光标下的单词大小写?

在 bash 的 vi 模式下,没有切换大小写之类的东西。切换行的唯一键是<PageUp>key(因为我偶然碰到了它)。根据这个答案如何映射 PageDown 和 PageUp 键以使其正常运行xterm 发送的序列<PageUp>是这样的

如果您使用 xterm 仿真器(例如 Putty)访问 Linux 计算机,则 PgUp 键会向 Linux 系统发送四个字符 Escape [ 5 ~。

我已经在我的 shell 上尝试过了,它确实有效。所以 xterm 接受这些序列。所以我尝试通过.bashrc以下方式添加:

set -o vi
bind '"uu":"\eB\e[5~a"'

重要的是\e[5~- 这是<PageUp>关键。但是尽管在 cmd 中可以工作,但在 中却不行.basrc,为什么呢?

答案1

这对您不起作用,因为您试图模拟在 bash 中输入这些字符的效果。当您这样做时,您会触发一些键绑定,使 bash 将单词大写。但是,将这些键绑定为宏不会产生相同的效果。

幸运的是,您可以使用一个操作将单词大写:upcase-word。因此您的键绑定应如下所示:

set -o vi
bind -m vi-command '"uu":upcase-word'

这将映射uu序列以在命令模式下将单词大写。您不会想在插入模式下映射它,因为那样您将无法输入uu。要查看您可以映射的所有操作的列表,请使用bind -l

相关内容