取消zsh选项卡完成


10

启动完成后,是否可以取消它?有时我愚蠢地按Tab键以自动完成制作目标(仅出于纯粹的惰性),然后最终不得不等待更长的时间,而不是我自己输入整个“安装”或“签出”的时间。

在zshzle手册页中没有看到任何值得注意的内容,但是也许我错过了一些东西吗?是否有其他外壳具有此功能?

编辑:平凡的答案。因此,相反:zsh是否有一种方法可以估计制表符补全将花费相对较长的时间来执行,而是询问用户是否希望这样做?


2
ctrl-c不起作用?
llua 2012年

1
该死,确实如此!由于某种原因,我没有想到这一点。我想我以为Ctrl-C会做得更加生动。删除问题?(或者也许您想要代表?)
Zorawar 2012年

1
我认为无法估算出完成制表符所需的时间。您可能会缓存结果,但仅此而已。
Ulrich Dangel,2012年

1
@zorawar,我只是想提供帮助,而不是获得高分:]
llua 2012年

1
ctrl-c不适用于所有zsh的完成机制。如果有人知道其他方法可以停止这种情况。在这里有这个答案将是很棒的。
xer0x

Answers:


7

一个SIGINT中断当前操作完成,给您带来回线编辑器。因此,按Ctrl+ C。效果可能不会立即产生:解释器仅在执行过程中检查某些点的信号(尽管它们很频繁),并且如果zsh进程在系统调用中被阻塞,则信号可能需要一段时间(例如,等待文件系统响应)。

不幸的是,如果您在错误的时间按Ctrl+ C,并且在信号传递时尚未完成操作,则当前的命令行将被取消。如果没有两个不同的中断键,一个很难完成,而另一个则需要解决,这很难解决,而且我不确定zsh是否支持这一点。

如果完成可能需要很长时间,则警告您实际上是不可行的。完成功能的速度通常主要取决于从文件系统读取某些信息的速度;此信息是否在缓存中,有多少以及它是哪种文件系统(例如ramdisk,硬盘或NFS挂载)都具有很大的影响力。


1
对于制表符补全来说,可配置的超时可能是合理的默认设置。
antiduh 2013年

3

您可以使用ctrl+ k取消自动完成。但是我也无法从zsh指南中找到任何信息,但是它确实取消了自动补全。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.