https://github.com/hernancerm/zsh-trampoline
Jump to the places that matter to you
https://github.com/hernancerm/zsh-trampoline
cd navigation zsh zsh-plugin
Last synced: about 1 month ago
JSON representation
Jump to the places that matter to you
- Host: GitHub
- URL: https://github.com/hernancerm/zsh-trampoline
- Owner: hernancerm
- License: mit
- Created: 2023-10-22T03:51:51.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-23T20:50:10.000Z (about 1 month ago)
- Last Synced: 2025-03-23T21:31:34.732Z (about 1 month ago)
- Topics: cd, navigation, zsh, zsh-plugin
- Language: Shell
- Homepage:
- Size: 75.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## What is this?
This is a Zsh plugin to efficiently `cd` to commonly visited dirs. The plugin displays all
your configured dirs in fzf always in the same order. Think of it like a super simple
[zoxide](https://github.com/ajeetdsouza/zoxide) just for Zsh. The plugin can also open
files in `$EDITOR`.## Usage
While on the shell, press ctrl+t to start fzf with dirs and files to "jump" to:
`cd` or open with `$EDITOR`. This list is taken from `$ZT_CONFIG` that you need to define.
Press enter to select.## Installation
### Without a plugin manager
1. Install [fzf](https://github.com/junegunn/fzf) version >=0.45.
[Homebrew](https://brew.sh/) command: `brew install fzf`.
2. Clone the zsh-trampoline Git repository by executing the below command:```text
git clone 'https://github.com/hernancerm/zsh-trampoline.git' \
"${HOME}/.zsh-trampoline/zsh-trampoline"
```3. Place the below snippet at the end of your file `~/.zshrc`:
```text
# ZSH-TRAMPOLINE - Start - .
source "${HOME}/.zsh-trampoline/zsh-trampoline/trampoline.plugin.zsh"
ZT_CONFIG=(
# Place each dir and file you want to jump to in a new line.
~ # Example, you can remove this line.
)
zt_setup_widget
# ZSH-TRAMPOLINE - End.
```4. Start a new shell.
### With a plugin manager
If you feel comfortable with shell scripting and plan to install other Zsh plugins, like
[zsh-vi-mode](https://github.com/jeffreytse/zsh-vi-mode), I recommend you use a shell
plugin manager like [Sheldon](https://github.com/rossmacarthur/sheldon) for the
installation. Comparing this approach to the plugin-manager-less approach, the plugin
manager would be in charge of doing the git clone (step 2) and sourcing the plugin on
startup (line beginning with `source` from the snippet of step 3, you still need to define
`ZT_CONFIG` and call `zt_setup_widget`).## Parameter ZT_CONFIG
Some things to note:
- If your dir or file has whitespace chars, surround it with single quotes.
- Environment variables, defined as `export MY_VAR=~/file/path`, are supported quoted. Do
not forget the `export` keyword. That is, this could be a valid entry in `ZT_CONFIG`:
`'${MY_VAR}'`. The plugin does the expansion.
- On ctrl+t what gets listed is:
- Files. Quoted env vars which point to a file are listed as the env var.
- Level 1 sub-dirs of the dirs in `ZT_CONFIG`. Quoted env vars which point to a dir are
treated as dirs.
- Anything ending in `:0`. In this case the `:0` is stripped. The purpose of this is to
be able to list the dirs themselves which are in `ZT_CONFIG`, avoiding the sub-dirs
replacement.## Integration with other Zsh plugins
- [jeffreytse/zsh-vi-mode](https://github.com/jeffreytse/zsh-vi-mode) (ZVM).
Binding ctrl+t is done inside a specific ZVM function, as below. Do not call
`zt_setup_widget` when integrating with ZVM.```text
function zvm_after_init {
zt_zvm_setup_widget
}
```## Optional configuration
Optional configuration is provided through parameters.
Zsh parametersAllowed values
Default valueDescription
ZT_KEY_MAP_START
Key map to list dirs & files in fzf. Default: ctrl+t.
## Similar projects
-
-
-