我刚刚发现了set -o vi.
例如,创建自定义键绑定以将更方便的键或键组合映射到esc?
如果当前不支持,在某些自定义中更改程序的源代码和硬编码会有多困难,或者这是否是一个坏主意?
der*_*ert 19
是的,您可以使用bind内置更改键映射(对于 vi 或 emacs 类模式)。这实际上是一个 readline 功能(因此您可以在所有 readline 程序中具有类似 vi 的绑定,而不仅仅是 bash)。
您要查找的键名为vi-movement-mode,默认为\e(escape)。您还可以将它绑定到(这很愚蠢)像这样的等号。第二行去掉了要转义的绑定:
$ bind "=":vi-movement-mode
$ bind -r "\e"
Run Code Online (Sandbox Code Playgroud)
运行bind -p将显示您可以绑定的所有键,以及它们当前的绑定(如果有)。
您可以将bind命令放入您的.bashrc,或者您可以编辑~/.inputrc以使其适用于您运行的所有 readline 程序。readline 文档包含完整的详细信息。