Skip to content

Commit

Permalink
wd: update to latest version (v0.5.0) (ohmyzsh#9244)
Browse files Browse the repository at this point in the history
  • Loading branch information
alpha-tango-kilo committed Sep 9, 2020
1 parent 18765d6 commit bd04003
Show file tree
Hide file tree
Showing 2 changed files with 177 additions and 166 deletions.
186 changes: 103 additions & 83 deletions plugins/wd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

[![Build Status](https://travis-ci.org/mfaerevaag/wd.png?branch=master)](https://travis-ci.org/mfaerevaag/wd)

`wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`. Why? Because `cd` seems inefficient when the folder is frequently visited or has a long path.
`wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`.
Why?
Because `cd` seems inefficient when the folder is frequently visited or has a long path.

![tty.gif](https://raw.githubusercontent.com/mfaerevaag/wd/master/tty.gif)

*NEWS*: If you are not using zsh, check out the c-port, [wd-c](https://github.com/mfaerevaag/wd-c), which works with all shells using wrapper functions.

## Setup

### oh-my-zsh
### [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)

`wd` comes bundled with [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)!
`wd` comes bundled with oh-my-zsh!

Just add the plugin in your `~/.zshrc` file:
Just add the plugin in your `.zshrc` file:

```zsh
plugins=(... wd)
Expand All @@ -38,11 +38,21 @@ antibody bundle mfaerevaag/wd

### Arch ([AUR](https://aur.archlinux.org/packages/zsh-plugin-wd-git/))

1. Install from the AUR

```zsh
yay -S zsh-plugin-wd-git
# or use any other AUR helper
```

2. Then add to your `.zshrc`:

```zsh
wd() {
. /usr/share/wd/wd.sh
}
```

### [zplug](https://github.com/zplug/zplug)

```zsh
Expand All @@ -51,7 +61,9 @@ zplug "mfaerevaag/wd", as:command, use:"wd.sh", hook-load:"wd() { . $ZPLUG_REPOS

### Automatic

Run either in terminal:
_Note: automatic install does not provide the manpage. It is also poor security practice to run remote code without first reviewing it, so you ought to look [here](https://github.com/mfaerevaag/wd/blob/master/install.sh)_

Run either command in your terminal:

```zsh
curl -L https://github.com/mfaerevaag/wd/raw/master/install.sh | sh
Expand All @@ -65,28 +77,33 @@ wget --no-check-certificate https://github.com/mfaerevaag/wd/raw/master/install.

### Manual

* Clone this repo to your liking
1. Clone this repository on your local machine in a sensible location (if you know what you're doing of course all of this is up to you):

* Add `wd` function to `.zshrc` (or `.profile` etc.):
```zsh
git clone git@github.com:mfaerevaag/wd.git ~/.local/wd --depth 1
```

```zsh
wd() {
. ~/path/to/cloned/repo/wd/wd.sh
}
```
2. Add `wd` function to `.zshrc` (or `.profile` etc.):

* Install manpage. From `wd`'s base directory (requires root permissions):
```zsh
wd() {
. ~/.local/wd/wd.sh
}
```

```zsh
cp wd.1 /usr/share/man/man1/wd.1
chmod 644 /usr/share/man/man1/wd.1
```
3. Install manpage (optional):

**Note:** when pulling and updating `wd`, you'll need to do this again in case of changes to the manpage.
```zsh
sudo cp ~/.local/wd/wd.1 /usr/share/man/man1/wd.1
sudo chmod 644 /usr/share/man/man1/wd.1
```

**Note:** when pulling and updating `wd`, you'll need to repeat step 3 should the manpage change

## Completion

If you're NOT using [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) and you want to utilize the zsh-completion feature, you will also need to add the path to your `wd` installation (`~/bin/wd` if you used the automatic installer) to your `fpath`. E.g. in your `~/.zshrc`:
If you're NOT using [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) and you want to utilize the zsh-completion feature, you will also need to add the path to your `wd` installation (`~/bin/wd` if you used the automatic installer) to your `fpath`.
E.g. in your `~/.zshrc`:

```zsh
fpath=(~/path/to/wd $fpath)
Expand All @@ -102,109 +119,110 @@ rm -f ~/.zcompdump; compinit

* Add warp point to current working directory:

```zsh
wd add foo
```
```zsh
wd add foo
```

If a warp point with the same name exists, use `wd add! foo` to overwrite it.
If a warp point with the same name exists, use `wd add foo --force` to overwrite it.

**Note:** a warp point cannot contain colons, or consist of only spaces and dots. The first will conflict in how `wd` stores the warp points, and the second will conflict with other features, as below.
**Note:** a warp point cannot contain colons, or consist of only spaces and dots.
The first will conflict in how `wd` stores the warp points, and the second will conflict with other features, as below.

You can omit point name to automatically use the current directory's name instead.
You can omit point name to automatically use the current directory's name instead.

* From any directory, warp to `foo` with:

```zsh
wd foo
```
```zsh
wd foo
```

* You can also warp to a directory within foo, with autocompletion:
* You can also warp to a directory within `foo`, with autocompletion:

```zsh
wd foo some/inner/path
```
```zsh
wd foo some/inner/path
```

* You can warp back to previous directory and higher, with this dot syntax:

```zsh
wd ..
wd ...
```
```zsh
wd ..
wd ...
```

This is a wrapper for the zsh's `dirs` function.
_You might need to add `setopt AUTO_PUSHD` to your `.zshrc` if you are not using [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh))._
This is a wrapper for the zsh's `dirs` function.
_You might need to add `setopt AUTO_PUSHD` to your `.zshrc` if you are not using [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)._

* Remove warp point:

```zsh
wd rm foo
```
```zsh
wd rm foo
```

You can omit point name to use the current directory's name instead.
You can omit point name to use the current directory's name instead.

* List all warp points (stored in `~/.warprc`):
* List all warp points (stored in `~/.warprc` by default):

```zsh
wd list
```
```zsh
wd list
```

* List files in given warp point:

```zsh
wd ls foo
```
```zsh
wd ls foo
```

* Show path of given warp point:

```zsh
wd path foo
```
```zsh
wd path foo
```

* List warp points to current directory, or optionally, path to given warp point:

```zsh
wd show
```
```zsh
wd show
```

* Remove warp points to non-existent directories.

```zsh
wd clean
```
```zsh
wd clean
```

Use `wd clean!` to not be prompted with confirmation (force).
Use `wd clean --force` to not be prompted with confirmation.

* Print usage info:

```zsh
wd help
```
```zsh
wd help
```

The usage will be printed also if you call `wd` with no command
The usage will be printed also if you call `wd` with no command

* Print the running version of `wd`:

```zsh
wd --version
```
```zsh
wd --version
```

* Specifically set the config file (default being `~/.warprc`), which is useful for testing:

```zsh
wd --config ./file <command>
```
```zsh
wd --config ./file <command>
```

* Force `exit` with return code after running. This is not default, as it will *exit your terminal*, though required for testing/debugging.

```zsh
wd --debug <command>
```
```zsh
wd --debug <command>
```

* Silence all output:

```zsh
wd --quiet <command>
```
```zsh
wd --quiet <command>
```

## Configuration

Expand All @@ -216,7 +234,7 @@ Defines the path where warp points get stored. Defaults to `$HOME/.warprc`.

## Testing

`wd` comes with a small test suite, run with [shunit2](https://code.google.com/p/shunit2/). This can be used to confirm that things are working as they should on your setup, or to demonstrate an issue.
`wd` comes with a small test suite, run with [shunit2](https://github.com/kward/shunit2). This can be used to confirm that things are working as they should on your setup, or to demonstrate an issue.

To run, simply `cd` into the `test` directory and run the `tests.sh`.

Expand All @@ -225,15 +243,17 @@ cd ./test
./tests.sh
```

## License
## Maintainers

Following @mfaerevaag stepping away from active maintainership of this repository, the following users now are also maintainers of the repo:

The project is licensed under the [MIT license](https://github.com/mfaerevaag/wd/blob/master/LICENSE).
* @alpha-tango-kilo

## Contributing
* @MattLewin

If you have issues, feedback or improvements, don't hesitate to report it or submit a pull request. In the case of an issue, we would much appreciate if you would include a failing test in `test/tests.sh`. For an explanation on how to run the tests, read the section "Testing" in this README.
Anyone else contributing is greatly appreciated and will be mentioned in the release notes!

----
---

Credit to [altschuler](https://github.com/altschuler) for an awesome idea.

Expand Down

0 comments on commit bd04003

Please sign in to comment.