它只是提到了一个快捷方式,它的用法应该是显而易见的,但对我来说并不明显。我怎么知道我“标记”了某些东西?我为什么要标记一些东西?这东西有范围吗?它会过期吗?我会在何时/何地收到 bash 警告吗?最重要的是,很酷,我“设置了标记”。现在怎么办?
那么,我可以设置的这个标记到底是什么以及我将用它做什么呢?
答案1
严格来说,set-mark
它不是 bash 命令,而是 readline 命令。它用于在当前编辑的命令行中的特定位置设置“标记”。
该标记随后可用于其他读取行编辑操作。
默认情况下可能不会安装 readline 的完整文档。根据您的发行版,它可能位于一个单独的包中,名称类似于readline-doc
GNU Info 文件格式(需要使用info
或pinfo
来查看)。它也可以在网上找到https://tiswww.case.edu/php/chet/readline/rltop.html
它也记录在 bash 手册页以及其他几个使用 readline 的 GNU 程序的手册页中。运行man bash
并搜索^READLINE
.
从man bash
:
Readline 命令名称
以下是命令名称及其绑定的默认键序列的列表。默认情况下,没有附带键序列的命令名称是未绑定的。在下面的描述中,观点指当前光标位置,并且 标记指
set-mark
命令保存的光标位置。之间的文字观点和标记被称为 地区。
请注意,readline 命令既可用于交互式使用(即在编辑命令行时),也可用于编程使用(例如在您的 中~/.inputrc
)。这就是为什么某些命令具有选项/参数的原因。
顺便说一句,没有多少 readline 命令可以使用分数或者地区(这观点被许多 readline 命令频繁使用)。他们是:
两个具有默认键绑定:
设定标记(C-@、M-<空格>)
设置标记到观点。如果提供数字参数,则标记被设置到该位置。
交换点和标记(CxCx)
交换观点与标记。当前光标位置设置为保存位置,旧光标位置保存为标记。
Ctrl-@
因此,您可以使用或标记当前光标位置,Meta-<space>
并通过键入两次来交换当前光标位置的标记Ctrl-x
。即对于在队列中的两个位置之间来回跳跃很有用。
另外两个没有默认键绑定:
杀伤区
杀死当前文本地区。
复制区域作为终止
复制文本中的内容地区到终止缓冲区。
要在命令行上进行交互式编辑时使用其中任何一个,您必须将它们绑定到一个键。