ajeetdsouza / zoxide

A smarter cd command. Supports all major shells.
MIT License
20.54k stars 523 forks source link

Alias to cd with zsh does not allow <space><tab> autocompletion zoxide 0.9.3 #712

Closed emirkmo closed 3 months ago

emirkmo commented 5 months ago

(I have zsh shell, and also oh my zsh on Ubuntu 22.04, with fzf installed as well).

No matter if I load compinit before or after zoxide init command in .zshrc (see https://github.com/ajeetdsouza/zoxide/issues/513#issuecomment-1560634910) tab completion with cd <some_directory><space><tab> does not find any matches.

In fact, it either finds: cd <somedir><space><tab> z#<full>/<path>/<to>/<somedir> and then zoxide: no match found or just zoxide: no match found.

However, using __zoxide_cd <somedir><space><tab> just works!

autoload -Uz compinit
compinit -i
eval "$(zoxide init --cmd cd zsh)"
# Doesn't matter if this is before or after the eval
# autoload -Uz compinit
# compinit -i

zoxide version: 0.9.3 fzf version: 0.29 (devel) omz version: master (872b5cd) zsh version: 5.8.1 (x86_64-ubuntu-linux-gnu)

mesa123123 commented 4 months ago

Same problem here on fedora with bash: image

fzf --version -> 0.44 zoxide --version -> 0.9.3 bash version -> 5.2.26

jam1015 commented 4 months ago

I'm on Arch, using Zsh, and I've found that the conditions that makes it work are

  1. Have ohmyzsh installed
  2. the completealiases option can't be set; I can't have run setopt completealiases in my zshrc.
ajeetdsouza commented 4 months ago

Could you try upgrading to zoxide 0.9.4 and see if it works?

jam1015 commented 4 months ago

thanks it works for me now

Giggiux commented 4 months ago

I just upgraded to 0.9.4. I have a question related to this issue:

I imagine that when doing z + space + tab, I would not only get the suggestions from directories and files in the folder I'm in but also from the list of "indices" that zoxide has (aka the ones in zoxide query -ls )

I am using: zsh 5.9 (x86_64-apple-darwin23.0) oh-my-zsh

installed zoxide with brew, and have it configured as a plugin: (this is part of my .zshrc) plugins=(git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting zsh-autocomplete zoxide autoupdate)

Am I missing something in the configuration, or what I expect to happen simply isn't possible?

preland commented 4 months ago

I am also having issues on MacOS zsh installed via brew; i have eval "$(zoxide init zsh --cmd cd)" in my .zshrc. I can go to the correct directory by typing it out fully, but it won't autocomplete.

scr1ptie commented 4 months ago

I was looking at the sources for init, the problem here is mostly with how zoxide query --interactive -- key1 doesn't actually include key1 into the interactive search and either returns one line output which directly cd's into output or it returns not found which leaves empty results. Fix for this would ultimately solve the issue everyone is facing here.

For now, the temporary fix was to remove ${words[2, -1]} from the init configuration for zsh inside __zoxide_z_complete() function. This won't give me results relative to the search that is already there. But, it's usable a bit now till there is a fix for this.

github-actions[bot] commented 3 months ago

This issue has been automatically closed due to inactivity. If you feel this is still relevant, please comment here or create a fresh issue.

github-actions[bot] commented 3 months ago

This issue has been automatically closed due to inactivity. If you feel this is still relevant, please comment here or create a fresh issue.

emirkmo commented 3 months ago

Hi, sorry about the lack of response. I have been unable to try it with that specific setup, however I am running into issues setting it up with zi and the zi zoxide plugin (possibly related but not worth discussing here). I still intend to return to the setup where only the cd aliasing is not working and try 0.9.4. Github-actions but is just a bit hasty :)

emirkmo commented 3 months ago

@ajeetdsouza I can confirm the original issue is fixed.

I think there is still some unexpected behavior as brought up by other Commenters.

cd <rootdir><SPACE><TAB>

just cd's into rootdir since it is the only one in the index, despite multiple child subdirs being in the index.

cd <rootdir/><SPACE><TAB>

Emphasis on rootdir/ with backslash opens up fzf fuzzy search of index (similar to cd rootdir/sub_char<SPACE><TAB>

Perhaps this is intended but it is not how I remembered zoxide working.

Anyway. I will close, as the other issue's (https://github.com/ajeetdsouza/zoxide/issues/712#issuecomment-1986980494) are related but different. It's a quirk in how it works.