在 bash 中,当我键入screen -x
并按两次 Tab 键时,我会得到所有正在运行的会话的列表。
在 zsh 中,当我键入screen -ls
并按 tab 键两次时,我得到了所有正在运行的会话的列表,并且可以通过它们切换,最终在按 enter 键时选择一个,但是当再次按 enter 键时它会执行screen -ls session-name
。
我想要在 zsh 中获得-x
类似于 的行为-ls
,这样我就不必键入会话名称或选择会话并返回并更改ls
为x
.
我找不到实现screen -ln
tab-behavior 的代码,以便也实现它-x
,我一直在搜索/grepping 插件列表.oh-my-zsh
,但一无所获。
感谢任何帮助,或者一些工作流程提示。我经常使用屏幕,其中大部分是通过screen -x
.
代码在
_screen
(补全由zsh原生提供,不是额外的插件)。Zsh 完成所有会话-ls
,但仅完成附加会话-x
。-x
旨在“附加到未分离的屏幕会话”(根据手册)。但如果会话被分离,它也可以工作。所以这两种行为都是有道理的。理想情况下,这应该是 zsh 补全的配置选项。要获得您想要的行为而不是当前行为,您需要更改行
到
下面是一些代码,您可以将这些代码放入您的 init 文件中,以猴子修补完成函数以获得您想要的行为。它需要在后面进行
compinit
(如果您使用 oh-my-zsh,那么在 oh-my-zsh 行之后)。