bash 中的 set-mark 是什么?我应该期望它如何表现?

arg*_*gle 2 bash clipboard

它只是提到了一个快捷方式,它的用法应该是显而易见的,但对我来说并不明显。我怎么知道我“标记”了某些东西?我为什么要标记一些东西?这东西有范围吗?它会过期吗?我会在何时/何地收到 bash 警告吗?最重要的是,很酷,我“设置了标记”。现在怎么办?

那么,我可以设置的这个标记到底是什么以及我将用它做什么呢?

cas*_*cas 5

严格来说,set-mark它不是 bash 命令,而是 readline 命令。它用于在当前编辑的命令行中的特定位置设置“标记”。

该标记随后可用于其他读取行编辑操作。

默认情况下可能不会安装 readline 的完整文档。根据您的发行版,它可能位于一个单独的包中,名称类似于readline-docGNU Info 文件格式(需要使用infopinfo来查看)。也可在网上获取:https://tiswww.case.edu/php/chet/readline/rltop.html

它也记录在 bash 手册页以及其他几个使用 readline 的 GNU 程序的手册页中。运行man bash并搜索^READLINE.

man bash

Readline 命令名称

以下是命令名称及其绑定的默认键序列的列表。默认情况下,没有附带键序列的命令名称是未绑定的。在下面的描述中,point指的是当前光标位置, mark指的是该命令保存的光标位置set-mark标记之间的文本称为 区域

请注意,readline 命令既可用于交互式使用(即在编辑命令行时),也可用于编程使用(例如在您的 中~/.inputrc)。这就是为什么某些命令具有选项/参数的原因。

顺便说一句,没有多少 readline 命令使用标记区域(许多 readline 命令经常使用该点)。他们是:

两个具有默认键绑定:

设置标记(C-@、M-<空格>)

标记设置为。如果提供了数字参数,则标记将设置到该位置。

交换点和标记(Cx Cx)

将点标记交换。当前光标位置设置为保存位置,旧光标位置保存为标记

Ctrl-@因此,您可以使用或标记当前光标位置Meta-<space>,并通过键入两次来交换当前光标位置的标记Ctrl-x。即对于在队列中的两个位置之间来回跳跃很有用。

和两个没有默认键绑定的:

杀伤区

杀死当前区域中的文本。

复制区域作为终止

将区域中的文本复制到终止缓冲区。

要在命令行上进行交互式编辑时使用其中任何一个,您必须将它们绑定到一个键。