mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-26 02:08:37 +08:00
49458b872d
Fixes #10350
63 lines
2.6 KiB
Markdown
63 lines
2.6 KiB
Markdown
# Dirhistory plugin
|
|
|
|
This plugin adds keyboard shortcuts for navigating directory history and hierarchy.
|
|
|
|
To use it, add `dirhistory` to the plugins array in your zshrc file:
|
|
|
|
```zsh
|
|
plugins=(... dirhistory)
|
|
```
|
|
|
|
## Keyboard Shortcuts
|
|
|
|
| Shortcut | Description |
|
|
|-----------------------------------|-----------------------------------------------------------|
|
|
| <kbd>Alt</kbd> + <kbd>Left</kbd> | Go to previous directory |
|
|
| <kbd>Alt</kbd> + <kbd>Right</kbd> | Go to next directory |
|
|
| <kbd>Alt</kbd> + <kbd>Up</kbd> | Move into the parent directory |
|
|
| <kbd>Alt</kbd> + <kbd>Down</kbd> | Move into the first child directory by alphabetical order |
|
|
|
|
**For macOS: use the Option key (<kbd>⌥</kbd>) instead of <kbd>Alt</kbd>**.
|
|
|
|
> NOTE: some terminals might override the <kbd>Alt</kbd> + Arrows key bindings (e.g. Windows Terminal).
|
|
> If these don't work check your terminal settings and change them to a different keyboard shortcut.
|
|
|
|
## Usage
|
|
|
|
This plugin allows you to navigate the history of previous working directories using <kbd>Alt</kbd> + <kbd>Left</kbd>
|
|
and <kbd>Alt</kbd> + <kbd>Right</kbd>. <kbd>Alt</kbd> + <kbd>Left</kbd> moves to past directories, and
|
|
<kbd>Alt</kbd> + <kbd>Right</kbd> goes back to recent directories.
|
|
|
|
**NOTE: the maximum directory history size is 30.**
|
|
|
|
You can also navigate **directory hierarchies** using <kbd>Alt</kbd> + <kbd>Up</kbd> and <kbd>Alt</kbd> + <kbd>Down</kbd>.
|
|
<kbd>Alt</kbd> + <kbd>Up</kbd> moves to the parent directory, while <kbd>Alt</kbd> + <kbd>Down</kbd> moves into the first
|
|
child directory found in alphabetical order (useful to navigate long empty directories, e.g. Java packages).
|
|
|
|
For example, if the shell was started, and the following commands were entered:
|
|
|
|
```shell
|
|
cd ~
|
|
cd /usr
|
|
cd share
|
|
cd doc
|
|
```
|
|
|
|
the directory stack (`dirs -v`) would look like this:
|
|
|
|
```console
|
|
$ dirs -v
|
|
0 /usr/share/doc
|
|
1 /usr/share
|
|
2 /usr
|
|
3 ~
|
|
```
|
|
|
|
then entering <kbd>Alt</kbd> + <kbd>Left</kbd> at the prompt would change directory from `/usr/share/doc` to `/usr/share`,
|
|
then if pressed again to `/usr`, then `~`. If <kbd>Alt</kbd> + <kbd>Right</kbd> were pressed the directory would be changed
|
|
to `/usr` again.
|
|
|
|
After that, <kbd>Alt</kbd> + <kbd>Down</kbd> will probably go to `/usr/bin` if `bin` is the first directory in alphabetical
|
|
order (depends on your `/usr` folder structure). <kbd>Alt</kbd> + <kbd>Up</kbd> will return to `/usr`, and once more will get
|
|
you to the root folder (`/`).
|