New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fish freezes for autocompletion of killall #4052
Comments
Are you trying to do completion by pushing Tab, or is it the autosuggestion alone? The autosuggestion should not call external processes, so my suspicion is that loading the history is what's slowing things down. You could run with |
On the other hand, if it's the completion, I definitely get some strange output with |
The completion for
Note that the @jacobsa, Can you reproduce the problem by just running |
The seemingly strange output from
That appears to be working as intended. @jacobsa: The pause is almost certainly due to the |
This fixes the obvious error in handling the `-u` short flag. See issue #4052.
To be clear, I'm not pressing tab. I type
|
I don't think so - |
Similarly |
This is not on a remote file system. There is a symlink to a fuse file system in the parent of the working directory, but it seems unlikely that would matter. This really does appear to be related to user completion. Here's a portion of the output of the strace command from above in the thread after I typed (I believe)
This is repeated over and over and over and over again, thousands of times, with the username handed to |
I definitely saw this again by typing |
What you're observing is due to an incredibly inefficient, and pointless, feature of the killall completion script. This was reported to us and fixed a month ago. See issue #3996. The fix will be in the fish 2.6.0 release. You can just copy the updated completion script to your system. |
Glad to hear it, thanks. Where do I put that script on my system, and how do I disable the built-in one? |
You can put it in $HOME/.config/fish/completions or $__fish_datadir/completions. Personal completion and autoloaded functions supercede those in the global directory. Putting the updated script in the global directory is less likely to cause you problems in the future. If you put it in your personal config directory and we update the script in the future you need to remember to update or remove your private copy. |
Every time I attempt to use
killall
, the shell freezes, apparently trying to do autocompletion.For example, I just typed
killall vim
, but got this:The shell remains entirely unresponsive to input until I press Ctrl-C twice, at which pont I can start typing again.
How can I debug this? Unfortunately it's not 100% reproducible; if I try again with
killall vim
right afterward, it works fine.This does happen when I run fish with
sh -c 'env HOME=$(mktemp -d) fish'
.The text was updated successfully, but these errors were encountered: