mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-08 04:34:00 +02:00
Add plugin: fz
This commit is contained in:
parent
b908feebcf
commit
337bfd5f72
7 changed files with 625 additions and 0 deletions
161
plugins/fz/README.md
Normal file
161
plugins/fz/README.md
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
# fz
|
||||
|
||||
A shell plugin that seamlessly adds fuzzy search to tab completion of
|
||||
[z](https://github.com/rupa/z),
|
||||
lets you easy to jump around among your historical directories.
|
||||
Not any additional key binding is needed. Currently supports Bash and zsh.
|
||||
|
||||
* [Demo](#demo)
|
||||
* [Installation](#installation)
|
||||
* [macOS](#macos)
|
||||
* [Bash](#bash)
|
||||
* [zsh](#zsh)
|
||||
* [Ubuntu](#ubuntu)
|
||||
* [Bash](#bash-1)
|
||||
* [zsh](#zsh-1)
|
||||
* [Usage](#usage)
|
||||
* [See Also](#see-also)
|
||||
* [License](#license)
|
||||
|
||||
## Demo
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
By simply sourcing corresponding script file for your shell, you're all set.
|
||||
However, this plugin is sitting on top of [z](https://github.com/rupa/z) and
|
||||
[fzf](https://github.com/junegunn/fzf), so you must have them installed as well.
|
||||
|
||||
N.B. `fz` needs to be sourced after `z`.
|
||||
|
||||
### macOS
|
||||
|
||||
#### Bash
|
||||
|
||||
1. Install fzf via [Homebrew](https://brew.sh/).
|
||||
|
||||
```sh
|
||||
brew install fzf
|
||||
```
|
||||
|
||||
2. Download z and fz.
|
||||
|
||||
```sh
|
||||
mkdir ~/.bash_completion.d
|
||||
curl "https://raw.githubusercontent.com/rupa/z/master/{z.sh}" \
|
||||
-o ~/.bash_completion.d/"#1"
|
||||
curl "https://raw.githubusercontent.com/changyuheng/fz/master/{fz.sh}" \
|
||||
-o ~/.bash_completion.d/z"#1"
|
||||
```
|
||||
|
||||
3. Add the following content to `~/.bashrc`:
|
||||
|
||||
```sh
|
||||
if [ -d ~/.bash_completion.d ]; then
|
||||
for file in ~/.bash_completion.d/*; do
|
||||
. $file
|
||||
done
|
||||
fi
|
||||
```
|
||||
|
||||
#### zsh
|
||||
|
||||
1. Install fzf via [Homebrew](https://brew.sh/).
|
||||
|
||||
```sh
|
||||
brew install fzf
|
||||
```
|
||||
|
||||
2. Install z and fz via [zplug](https://github.com/zplug/zplug).
|
||||
Add the following content to `~/.zshrc`:
|
||||
|
||||
```sh
|
||||
zplug "changyuheng/fz", defer:1
|
||||
zplug "rupa/z", use:z.sh
|
||||
```
|
||||
|
||||
### Ubuntu
|
||||
|
||||
#### Bash
|
||||
|
||||
1. Install fzf.
|
||||
|
||||
```sh
|
||||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
||||
~/.fzf/install
|
||||
```
|
||||
|
||||
2. Download z and fz.
|
||||
|
||||
```sh
|
||||
mkdir ~/.bash_completion.d
|
||||
curl "https://raw.githubusercontent.com/rupa/z/master/{z.sh}" \
|
||||
-o ~/.bash_completion.d/"#1"
|
||||
curl "https://raw.githubusercontent.com/changyuheng/fz/master/{fz.sh}" \
|
||||
-o ~/.bash_completion.d/z"#1"
|
||||
```
|
||||
|
||||
3. Add the following content to `~/.bashrc`:
|
||||
|
||||
```sh
|
||||
if [ -d ~/.bash_completion.d ]; then
|
||||
for file in ~/.bash_completion.d/*; do
|
||||
. $file
|
||||
done
|
||||
fi
|
||||
```
|
||||
|
||||
#### zsh
|
||||
|
||||
1. Install fzf.
|
||||
|
||||
```sh
|
||||
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
|
||||
~/.fzf/install
|
||||
```
|
||||
|
||||
2. Install z and fz via [zplug](https://github.com/zplug/zplug).
|
||||
Add the following content to `~/.zshrc`:
|
||||
|
||||
```sh
|
||||
zplug "changyuheng/fz", defer:1
|
||||
zplug "rupa/z", use:z.sh
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
z [dir name slug]<TAB>
|
||||
zz [dir name slug]<TAB>
|
||||
```
|
||||
|
||||
- The function of fz is pretty much like what it is of
|
||||
[z](https://github.com/rupa/z).
|
||||
`zz` limits the search base starting from current working directory.
|
||||
Check z’s doc for more information.
|
||||
- `tab`/`shift-tab`, `ctrl-n`/`ctrl-p`, `ctrl-j`/`ctrl-k`,
|
||||
for next and previous item. `Enter` for selection.
|
||||
Check fzf’s [doc](https://github.com/junegunn/fzf#search-syntax)
|
||||
for the search syntaxes.
|
||||
- `FZ_CMD=z` specifies command name of `fz`. Default is `z`.
|
||||
- `FZ_SUBDIR_CMD=zz` specifies command name for subdirectory only `z`.
|
||||
Default is `zz`.
|
||||
- `FZ_SUBDIR_TRAVERSAL=0` disables subdirectory completion.
|
||||
Default is enabled.
|
||||
- `FZ_CASE_INSENSITIVE=0` disables case-insensitive subdirectory completion.
|
||||
Default is enabled.
|
||||
- `FZ_ABBREVIATE_HOME=0` disables abbreviating `~`. Default is enabled.
|
||||
|
||||
## See Also
|
||||
|
||||
- [cdr](https://github.com/willghatch/zsh-cdr) + [zaw](https://github.com/zsh-users/zaw)
|
||||
- fzf’s [readme of completion](https://github.com/junegunn/fzf#fuzzy-completion-for-bash-and-zsh)
|
||||
and its [wiki](https://github.com/junegunn/fzf/wiki)
|
||||
- [fasd](https://github.com/clvv/fasd)
|
||||
- [autojump](https://github.com/wting/autojump)
|
||||
- [命令行上的narrowing(随着输入逐步减少备选项)工具](http://www.cnblogs.com/bamanzi/p/cli-narrowing-tools.html)
|
||||
|
||||
## License
|
||||
|
||||
This software is licensed under a [MIT License](LICENSE).
|
||||
Loading…
Add table
Add a link
Reference in a new issue