Commit Graph

53 Commits (6de1ad9d3dd4fdddf327f6201617409a8697dd43)

Author SHA1 Message Date
Jay 6de1ad9d3d [completion] Filter out non-hostnames in SSH config file (#1329)
* Correctly exclude SSH config options with Host

SSH config files have 14 options containing 'Host'.
Previously The zsh and bash completion scripts would include lines
containing these options when doing command-line completion of SSH hosts
with `ssh **`.

This commit fixes that problem by only including lines with 'host '.

* Don't autocomplete SSH hostnames using ?

SSH config files support ? as well as * for wildcards in Host lines.
This commit excludes lines containing ? for zsh/bash command line
completeion using `ssh **`
6 years ago
ptzz 2b19c0bc68 [bash/zsh] Fix missing fuzzy completions (#1303)
* [bash/zsh] Fix missing fuzzy completions

`cat foo**<TAB>` did not display the file `foobar` if there was a directory
named `foo`.

Fixes #1301

* [zsh] Evaluate completion prefix

  cat $HOME**
  cat ~username**
  cat ~username/foo**
6 years ago
ptzz 1fb0fbca58 [bash] Do not print error when falling back to default completion (#1279)
Fixes #1278
7 years ago
Junegunn Choi 87504a528e
[bash] Fix infinite loop on tab completion
awk may not set OFS to match FS depending on the implementation.

Close #1227
7 years ago
Avindra Goolcharan 7add75126d ZSH and Bash completion: remove shebang (#1248)
Shebangs are only for files that are directly executable. In cases
where files are only sourced (such as completion scripts), these
are unneeded.
7 years ago
Junegunn Choi cce6aef557
[bash] Fix extra space issue of dynamic completion with 'nospace'
Close #1203
7 years ago
Junegunn Choi d6588fc835
[bash-completion] Fix custom completion with dynamic loader enabled
After _completion_loader is called, instead of loading the entire
completion.bash file, just restore the fzf completion for the current
command. `_fzf_orig_completion_$cmd` is only set if _completion_loader
actually changed the completion options to avoid infinite loop.

Close #1170
7 years ago
Igor Urazov eaf6eb8978 [completion] Ensure ps called as command (#1098)
When `ps` is aliased for something uncommon, like `alias ps=grc ps` which colorizes ps output, the output of `ps` can be unexpected and/or undesired.

This change makes ps to be always executed as command, even if it's aliased.
7 years ago
Andrey Chernih 80a21f7a75 [completion] Fix known_hosts completion for custom port number (#1092)
Handles records like "[20.20.7.168]:9722 ssh-rsa ..."

This is a standard format for servers running on custom port according to http://man.openbsd.org/sshd.8#SSH_KNOWN_HOSTS_FILE_FORMAT

    A hostname or address may optionally be enclosed within ‘[’ and ‘]’
    brackets then followed by ‘:’ and a non-standard port number.
7 years ago
Josh Pencheon 45d4c57d91 [completion] Include host aliases in ssh completion (#1062) 7 years ago
Junegunn Choi 9d2c6a95f4
Revert "[bash] Do not append space when path completion is cancelled"
This reverts commit 376a76d1d3 as it
affects normal completion
7 years ago
Junegunn Choi 376a76d1d3
[bash] Do not append space when path completion is cancelled
Close #990
7 years ago
Junegunn Choi a5862d4b9c
[bash-completion] Use -o dirnames instead of -o plusdirs
Close #903
Related #135
8 years ago
Sam Van Den Berge 2ba10071c9 Add support for IPv6 addresses in ssh completion (#877)
Signed-off-by: Sam Van Den Berge <sam@drgt.net>
8 years ago
Junegunn Choi 44d3faa048
[completion] Restore --height option for kill completion 8 years ago
Junegunn Choi 208d4f2173
[shell] Make layout configurable via $FZF_DEFAULT_OPTS and $FZF_{KEY}_OPTS 8 years ago
Junegunn Choi dc3957ce79
[completion] Add preview window to kill completion 8 years ago
Junegunn Choi 4ecb7f3a16
Replace --normalize with --literal and enable normalization by default
Ref #790
8 years ago
Junegunn Choi 5b68027bee
Fix $FZF_COMPLETION_OPTS evaluation
Close #799
8 years ago
Junegunn Choi 1448d631a7
Add --height option 8 years ago
Junegunn Choi fd137a9e87
[bash/zsh-completion] Filter ~/.ssh/known_hosts
Close #791
8 years ago
Junegunn Choi 73eacf1137
[bash-completion] Always backup existing completion definitions
_fzf_completion_loaded is no longer checked. This change increases the
load time by a few milliseconds, but I can't think of a better way to
handle the issue.

Close #783.
8 years ago
Maverick Woo 2c8479a7c5 Fix #668
Handle uppercase letters in program names. This also deals with `-` and
`.`, both of which are quite common in program names, e.g., `xdg-open`
and `foo.sh`.
8 years ago
Junegunn Choi 6081eac58a
[shell] Suppress alias/function expansion
Close #611
8 years ago
Jim Howell b8a3ba16a2
[bash/zsh] Take SSH completion hints from known_hosts
Signed-off-by: Junegunn Choi <junegunn.c@gmail.com>
8 years ago
Gene Pavlovsky e2401350a3 Update completion.bash
Fixes #548. Avoid using a subshell in _fzf_defc().
9 years ago
Junegunn Choi 09a2ab39fe [bash] Fix shellcheck warnings
Close #516
9 years ago
Junegunn Choi 40d934e378 0.11.3 9 years ago
Junegunn Choi 82067463b8 [completion] _fzf_complete_COMMAND_post for post processing
e.g.

_fzf_complete_foo() {
  _fzf_complete "--multi --reverse --header-lines=3" "$@" < <(
    ls -al
  )
}

_fzf_complete_foo_post() {
  awk '{print $NF}'
}

[ -n "$BASH" ] && complete -F _fzf_complete_foo -o default -o bashdefault foo
9 years ago
Junegunn Choi 96176476f3 Make fuzzy completion customizable with _fzf_compgen_{path,dir}
Notes:
- You can now override _fzf_compgen_path and _fzf_compgen_dir functions
  to use custom commands such as ag instead of find for listing
  completion candidates.
    - The first argument is the base path to start traversal
- Removed file-only completion in bash, i.e. _fzf_file_completion.
  Maintaining a list of commands that only expect files, not
  directories, is cumbersome (there are too many) and error-prone.

TBD:
- Added $FZF_COMPLETION_DIR_COMMANDS to customize the list of commands
  which use directory-only completion. The default is "cd pushd rmdir".
  Not sure if it's the best approach to address the requirement, I'll
  leave it as an undocumented feature.

Related: #406 (@thomcom), #456 (@frizinak)
9 years ago
Kobe Lipkens 6208fc9cfd Fix autocompletion for absolute paths 9 years ago
Junegunn Choi e1dd798482 [bash/zsh-completion] List hidden files as well
Close #456 and #457
9 years ago
Junegunn Choi 57a37b5832 [bash-completion] Fix #417 - Update command list 9 years ago
Leandro Freitas 3ef41845a9 [bash-completion] Add nvim to f_cmds 9 years ago
Junegunn Choi 81a88693c1 Make --extended default
Close #400
9 years ago
Junegunn Choi 486b87d821 [bash-completion] Retain original completion options (#288) 9 years ago
Junegunn Choi eee45a9578 [completion] Revamp completion API
* _fzf_complete is the helper function for custom completion
    * _fzf_complete FZF_OPTS ARGS
    * Reads the output of the source command instead of the command string
    * In zsh, you can use pipe to feed the data into the function, but
      it's not possible in bash as by doing so COMPREPLY is set from the
      subshell and thus nullified
* Change the naming convention for consistency:
    * _fzf_complete_COMMAND

e.g.

  # pass completion suggested by @d4ndo (#362)
  _fzf_complete_pass() {
    _fzf_complete '+m' "$@" < <(
      local pwdir=${PASSWORD_STORE_DIR-~/.password-store/}
      local stringsize="${#pwdir}"
      find "$pwdir" -name "*.gpg" -print |
          cut -c "$((stringsize + 1))"-  |
          sed -e 's/\(.*\)\.gpg/\1/'
    )
  }

  # Only in bash
  complete -F _fzf_complete_pass -o default -o bashdefault pass
9 years ago
Junegunn Choi 8fa9e85980 [zsh-completion] Allow custom completion function
While in bash you can externally register custom completion functions
using `complete` command, it was not possible to do so in zsh without
changing completion.zsh as the name of the supported commands are
hard-coded within the code (See #362). With this commit, fzf-completion
of zsh will first look if `_fzf_COMMAND_completion` exists and calls the
function, so one can externally define completion functions for specific
commands.

This commit also tries to make the interface of (yet undocumented)
_fzf_list_completion helper function consistent across bash and zsh.

So the following code works both on bash and zsh.

    _fzf_pass_completion() {
      local pwdir=${PASSWORD_STORE_DIR-~/.password-store/}
      local stringsize="${#pwdir}"
      let "stringsize+=1"
      _fzf_list_completion '+m' "$@" << "EOF"
        find "$pwdir" -name "*.gpg" -print | cut -c "$stringsize"- | sed -e 's/\(.*\)\.gpg/\1/'
    EOF
    }

    # Only on bash
    complete -F _fzf_pass_completion -o default -o bashdefault pass

Note that the suggested convention and the interface are not yet final
and subject to change.

/cc @d4ndo
9 years ago
Junegunn Choi 2022a3ad96 Replace --header-file with --header (#346)
and allow using --header and --header-lines at the same time.

Close #346.
9 years ago
Junegunn Choi ee0c8a2635 Add --margin option
Close #299
9 years ago
Junegunn Choi 51d84b1869 [bash] Update fzf option completion 9 years ago
Evgeny Vereshchagin a79d080ea8 Fix g++: possible retry loop
See http://unix.stackexchange.com/q/213432/120177
9 years ago
Junegunn Choi a336494f5d 0.10.0 9 years ago
Junegunn Choi 3b52811796 Add support for search history
- Add `--history` option (e.g. fzf --history ~/.fzf.history)
- Add `--history-max` option for limiting the size of the file (default 1000)
- Add `previous-history` and `next-history` actions for `--bind`
    - CTRL-P and CTRL-N are automatically remapped to these actions when
      `--history` is used

Closes #249, #251
9 years ago
Junegunn Choi 34946b72a5 0.9.12 9 years ago
Junegunn Choi c14aa99ef6 [zsh/bash-completion] Avoid caret expansion
Close #233

setopt extendedglob on zsh caused caret in grep pattern to be expanded.
Problem identified and patch submitted by @lazywei.
10 years ago
Junegunn Choi 64949bf467 [bash-completion] Allow specifying empty completion trigger (#230) 10 years ago
Junegunn Choi ed8202efc6 [bash-completion] Ignore 0.0.0.0
Close #228
10 years ago
Junegunn Choi 22ae7adac8 Update completion for fzf itself 10 years ago
Junegunn Choi d08542ce5d Prepare for 0.9.9 release 10 years ago