答案1
zsh
当您输入时(注意,后面没有空格),shell 可以扩展;但很可能还有更多以 开头的变量,shell 无法确定您不在其中一个变量后面;因此您将获得一个变量列表(尝试一下)。要立即扩展,您需要通知 shell 变量/参数的名称已经完整:cp $_Tab
/
_
$_
_
$_
cp ${_}Tab
括号的作用与 类似${foo}bar
。您明确地用 来终止名称,}
因此后面的任何内容(例如bar
)都不是它的一部分。如果${_}
shell 理解名称中没有缺失(即尚未输入)的部分,那么就${_}
意味着$_
肯定可以这样扩展。
扩展之后${_}
,体验Tab应该如您所期望的那样。
bash
(最初这个问题被标记为狂欢我也照做了。虽然标签已经没有了,但我决定保留这部分。)
输入 后cp $_
,按Ctrl+ Alt+e展开特殊参数。展开后,Tab即可工作。
请注意,按键扩展的不仅仅是变量和参数。例如,如果您cp
是别名,那么它也将被扩展。扩展的行将是再次扩大(如果适用)当您点击时Enter。在某些情况下,这种双重扩展可能是不受欢迎的。比较我的这个答案,提到Ctrl++Alt的部分。e