当您使用 readline 命令在命令行上删除字符时(例如Ctrl-U,您可以使用 进行粘贴Ctrl-y,但是它存储在哪里?它似乎根本不使用 X11 剪贴板。
答案1
它会进入杀戮环,就像在 Emacs 中一样。来自 GNU Readline 文档:
当您使用kill命令时,文本将保存在kill-ring中。任意数量的连续杀死都会将所有被杀死的文本保存在一起,这样当你将其拉回来时,你就得到了全部。杀戮环不是特定于线路的;当您键入另一行时,您在先前键入的行中删除的文本可以稍后拉回。
来源:http://www.gnu.org/software/bash/manual/html_node/Readline-Killing-Commands.html
Kill Ring 存储在通过malloc
char 指针分配的内存中。来自kill.c
readline 源:
/* Where to store killed text. */
static char **rl_kill_ring = (char **)NULL;
答案2
readline
是一个供 tty 使用的库(至少最初是这样),它完全不考虑任何图形环境(例如 X 剪贴板或其他环境)。