如何在 Linux 中使用 bind 命令创建键绑定?

Linux 用户喜欢自动化,操作系统也提供了很多机会来轻松地自动化任务。 bind 命令是一个键盘快捷键,您可以创建它来快速运行特定的宏或命令,而无需输入它们。 让我们回顾一下 bind 命令,了解这里的用法。

绑定命令是什么?

Linux 中的 bind 命令是 Bash shell 自带的内置命令。 此命令用于将功能和宏分配给一个键或一系列键。 因此,此命令允许我们创建热键,而不必在每次需要使用时键入整个命令/函数/宏名称。 所有基于 Linux 的功能都带有各种预设键绑定。 bind 命令本质上可用于创建、修改和删除键绑定,通过 bash 壳。

命令的基本语法

理解任何命令的最好方法是理解它的语法。 Linux 中 bind 命令的语法如下所示。

bind [-lpsvPSV] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] 

这可能看起来势不可挡,但实际上并非如此。 该命令本身非常易于使用,您只需一行即可创建宏。 我们稍后会看到,但现在让我们看看这里提到的一些选项的含义。

选项 影响
-l 列出可用于键绑定的所有函数的名称。
-s / -S 列出分配给调用宏的所有键序列及其值。 使用 -S 以一种格式提供此输出,然后可以将其用作绑定命令的输入。
-p / -P 列出所有可用于绑定的函数的名称以及该函数可能绑定到的任何键。 使用 -P 以一种格式提供此输出,然后可以将其用作绑定命令的输入。
-v / -V 列出用作键绑定的所有变量及其值。 使用 -V 以一种格式提供此输出,然后可以将其用作绑定命令的输入。

此列表涵盖了 bind 命令的基础知识,但如果您想了解更多信息,请随时使用 man 命令或使用 web 手册页浏览手册页。 转到第二个参数。 顾名思义,我们使用 -m keymap 来定义键盘的键映射方案。 最受欢迎的两个如下。

  • emacs:这是默认的 emacs 样式键映射。
  • vi:这是基于 Linux 的 vi 文本编辑器的键映射。

这两种键映射方案有多种变体,可能值得您一试。

  • 我们的下一个参数 -f 用于从文件中读取键绑定配置。
  • 如果你想检查一个函数是否已经绑定到一个键,我们使用 -q 标签后跟一个函数名称。
  • 您可以使用 -u 前缀标记删除函数的所有键绑定配置。
  • 当您希望删除绑定到某个键序列的函数时,您可以使用 -r 标记后跟该键序列。
  • 同样,将键序列与 bash 命令,您使用 -x 标记,后跟键序列和命令。 这些应该用一个冒号分隔。

在 Linux 中使用 bind 命令

现在我们已经了解了 Linux 中的 bind 命令及其参数。 现在是时候将这些知识用于 bind 命令的实际应用了。 在本教程中,我们将通过一些示例来学习如何使用 bind 命令。

1. 列出所有键绑定和可用变量

现在您可能不记得系统中可用的所有键绑定,因此 bind 命令会在此处跟踪这些。 您可以简单地运行下面的命令来获取所有键绑定的列表。

bind -P 
绑定列表全部

2. 创建一个新的 Key 绑定

创建自定义键绑定是 Linux 中 bind 命令的一个重要功能。 借助这些,我们可以在不使用其全名的情况下调用任何函数或使用单个键执行我们的宏。 让我们分配键 Ctrl+u 在屏幕上打印“你好”。

bind '"C-u":"Hello!"' 

如您所见,Ctrl 在上述命令中由 C- 表示。 我们可以在下面的屏幕截图中看到这一点。

绑定密钥创建

3. 列出所有自定义键绑定

现在,如果您在上面的列表中没有看到您修改或自定义创建的键绑定,那没关系。 这是一个功能,而不是一个错误。 大多数自定义键绑定将使用默认选项创建 -X 即使除了按键序列和命令之外我们真的不使用任何选项(如我们上面所见)。

因此对于使用 -x 选项创建的键绑定,您需要运行以下命令来查看绑定。

bind -X 
绑定 X绑定 X

3. 删除现有的键绑定

有时您会注意到您不希望意外使用的键绑定。 或者您可能希望对单独的命令使用特定的键绑定。 为此,您可以使用 bind 命令的 -r 选项来删除键序列的较早功能。 让我们通过删除我们刚刚创建的键绑定来演示它。 这可以使用以下命令完成。

bind -r "C-u" 
绑定删除绑定删除

现在,按键序列 Ctrl+u 是无界的。 这可以用于其他一些命令或单独保留。

5. 从文件中读取键绑定

如果您有一堆从其他系统导出的键绑定,可以通过以下方式导入它们。 对于初学者,文件的格式应该与您声明绑定的方式完全相同,除了 bind 命令本身。

#key bindings file format <key sequence>:"<command or command sequence>"  #command to read the keybindings file bind -f <filename> 
绑定文件绑定文件

如您所见,我在文件中使用的绑定现在可以在系统中使用。 我在这里使用了 cat 命令来显示文件的内容。

包起来

Linux 中的 bind 命令对于任何希望优化其工作负载的 Linux 用户来说都是一个有用的工具。 如果您经常使用大量函数和宏,这将特别有用。

通过本教程,我们希望您能够理解 Linux 中的 bind 命令并了解其用法。 如果您有任何建议、反馈或疑问,请在下面的评论部分留下它们。