Package: fzf
Version: 0.30.0-1+b1
Severity: normal

Hi,

README.Debian says:

  Note, since fzf 0.29.0-1, the bash completion is installed for bash by
  default. Feel free to ignore the following instruction for fzf >=
  0.29.0-1.

It seems this means that the completion is installed as
/usr/share/bash-completion/completions/fzf

However, completions from that directory are not loaded by default, but
are loaded dynamically when the user tries to complete arguments to
their command.

See e.g.:

https://salsa.debian.org/debian/bash-completion/-/blob/master/bash_completion#L2175

In practice, this means that in a new shell, doing "cd **<tab>" does not
offer completion. If I then do "fzf <tab>", the completion is loaded,
and after that "cd **<tab>" *does* offer fzf completion.

This was tested on Ubuntu 22.04, but with the sid version of fzf
(0.30.0-1+b1) and bash-completion (2:2.11-6), so I'm assuming the same
behavior happens on Debian.


I'm not sure if there is a way for the package to bypass this dynamic
loading and have a snippet be loaded automatically (other than putting
a file in `/etc/bash_completion.d`, but that seems to be for
compatibility only).

What does seem to work is to load it explicitly in `~/.bashrc`:

  source /usr/share/bash-completion/completions/fzf

So maybe that chould be documented?

Gr.

Matthijs

-- System Information:
Debian Release: bookworm/sid
  APT prefers jammy-updates
  APT policy: (500, 'jammy-updates'), (500, 'jammy-security'), (500, 'jammy'), 
(100, 'jammy-backports'), (50, 'unstable-debug'), (50, 'testing-debug'), (50, 
'stable-security'), (50, 'stable-debug'), (50, 'unstable'), (50, 'testing'), 
(50, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.15.0-25-generic (SMP w/8 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

-- no debconf information

Reply via email to