Releases: gsamokovarov/jump
0.51.0
0.51.0
is a bug fix release that fixes jump cd
not respecting jump settings --space
. By default we wanna treat j dev soc web
as j dev/soc/web
. Due to a bug in jump cd
, j jump soc web
was treated as j jumpsocweb
.
We have settings in jump. You set them with jump settings
. I once said that "I don't want jump to have settings". I cave in. @StanAngeloff was switching from z
and z
joins terms separated by spaces and I introduce jump settings --spaces=ignore
for him. Nepotism at it's finest!
0.50.0
Jump has transcended operating systems and shells. Thanks to @ins0mniaque, Jump runs on your favourite Windows OS and your favourite Windows shell... THE POWER SHELL!!!
To use use Jump on PowerShell download jump.exe
add it to $PATH
and put the line below to your profile. If you are unsure where that "profile" is, look behind the $PROFILE
var.
Invoke-Expression (&jump shell pwsh | Out-String)
That's it! j
along with its autocompletion works. It's a beautiful day as I longed for that Windows support... Use it with moderation and pleasure. ✌️
PS1
Jump works on non-Windowses that run PowerShell. Just sayin!
PS2
💙💛
0.41.0
This humble Jump release is dedicated to my friends in Ukraine! Help them at https://linktr.ee/RazomForUkraine 💙💛
- Fix
jump import
forz
installation with custom$Z_DATA
. - Simplify Linux distribution with a Snap package (https://snapcraft.io/jump):
sudo snap install jump
Слава Україні!
0.40.0
Do you use jumps autocompletion? I don't... but lot's of Jump users do. If you happen to be one of the lot's and tried to autocomplete creatively named directories consisting shell-significant characters, the completion wouldn't work. Even worse, the completion could have triggered a shell command with specially crafted directory names and that's not good. Not good at all. It's a security issue!
Say you have the following directories indexed by jump already:
/Users/genadi/Test/
├── $\ dolla\ billz,\ yo!
├── $(mkdir\ Test2;\ echo\ you\ have\ been\ pwnd\ >&2)
└── test\ folder\ with\ `\ and\ -\ "\ all\ that\ jazz
j jazz<Tab>
would not have opened the directory, but would have waited for you to close the ` or " quotes:
$ j /Users/genadi/Test/test folder with ` and - " all that jazz
>
j dolla<Tab>
would have left you in /Users/genadi/Test
$ j /Users/genadi/Test/$ dolla billz, yo!
$ pwd
/Users/genadi/Test
... and worst of all, j pwnd<Tab>
would have hacked you! Still, creating a folder is not that harmful, but running any available command with the permission of the current user is!
$ ls
Desktop Documents Library Music Public 'VirtualBox VMs'
Developer Downloads Movies Pictures Test bin
$ j /Users/genadi/Test/$(mkdir Test2; echo you have been pwnd >&2)
you have been pwnd
$ ls ~
Desktop Documents Library Music Public Test2 bin
Developer Downloads Movies Pictures Test 'VirtualBox VMs'
All of this is fixed in Jump 0.40.0
by escaping the autocompletion. Running j pwnd<Tab>
now does:
$ ls
Desktop Documents Library Music Public 'VirtualBox VMs'
Developer Downloads Movies Pictures Test bin
$ j '/Users/genadi/Test/$(mkdir Test2; echo you have been pwnd >&2)'
$ pwd
/Users/genadi/Test/$(mkdir Test2; echo you have been pwnd >&2)
$ ls ~
Desktop Documents Library Music Public 'VirtualBox VMs'
Developer Downloads Movies Pictures Test bin
Please, make sure to upgrade to 0.40.0
as soon as you can.
0.30.1
A small bugfix release fixing the jump --version
output that was lagging a version behind. As a nice twist, we're offering an official Windows build now! 🙀
0.30.0
Welcome 0.30.0
in your lives. 🙌 Here's what changed:
XDG Config
Jump now stores its config in XDG compatible way. The search algorithm tries the directories in order:
$JUMP_HOME
(if given)$HOME/.jump
(if already exists)$XDG_CONFIG_HOME/jump
(preferred for new installs)
We're moving towards XDG, but for existing installs or non-XDG supported systems, the ~/.jump
dir will be used.
Settings
Jump is opinionated and we would recommend you to stick to the sweet hand-tuned defaults we have provided after years of research, however, we provide a few options that may be useful to hand tune yourself:
--space
(values: slash
(default), ignore
)
The calls j parent child
and j parent/child
are equivalent by default because spaces are treated as OS separators (/
in Unix). You can choose to ignore spaces in searches by setting the spaces
option to ignore
:
jump settings --space=ignore
--preserve
(values: false
(default), true
)
By default, landing in a directory that is no longer available on disk will cause jump to remove that directory from its database. If a jump lands in unmounted drive, the changing of the directory will timeout. This is why this is turned off (false
) by default.
jump settings --preserve=true
--reset
Reset jump settings to their default values.
jump settings --reset
Decay
When you j miss
and you land in the wrong directory, jump can let you go to the lesser scored entries of the miss
term if you call j
without arguments. Starting with 0.30.0
every time you call j
it will deflate the score of the miss
term which can let jump learn not to go to that bad directory over time.
0.23.0
Hello, fellow jumpers!
We got our first major issue fixed by a contributor! 🥳 Thanks to @mafredri in #36, we have a fixed import for z
aged score files.
Other than that, we have introduced jump top term
which shows the directories and their scores for a specific term and optimized jump clean
. We're also delivering Linux ARM binaries in the release notes! 💪
0.22.0
Ahoy, 👋
This release comes with a few minor changes:
-
The exact match mechanism is now triggered only on search terms of 5 or more characters. This is so we don't end up in common development project directories like
app
,lib
,src
,test
,main
,java
and so on. If you have a project calledapplication
, for example,j app
will no longer end up in a commonrails_project/app
directory. I'm not telling you to use Rails (you should), but it's just an example! 😅 -
You can use
*
or**
in a search term to match arbitrary deep nested directories. For example, you can now implement autojump'sjc
like:bash & zsh
jc() { j "$(basename $PWD)/**/$@" }
fish
function jc j "(basename $PWD)/**/$argv" end
0.21.0
You'd usually expect one of those witty release notes here, alas, this release is an exception! This release is straight to the point!
Have you ever wondered whether jump is like autojump or z? If you used autojump or z and used jump you'd already know it is! (But, that fuzzy matching is just SO MUCH BETTER 😉). And if you used them, you can now try jump without sacrificing your datafile! 🎉
jump import
You can import your datafile from autojump or z with:
$ jump import
This will try z first then autojump, so you can even combine all the entries from both tools.
The command is safe to run on pre-existing jump database, because if an entry exist in jump already, it won't be imported and it's score will remain unchanged. You can be explicit and choose to import autojump or z with:
$ jump import autojump
$ jump import z
Happy jumping!
0.20.0
For variety of reasons jump may not always find the directory you want, but don't worry you can make it stick! 📌 This release is all about those pins, baby! 📍
A pin forces an input to always go to a specific location. If you want j r
to always go to /Users/genadi/development/rails
, you can do:
$ cd /Users/genadi/development/rails
$ jump pin r
$ cd
$ j r # Skips the scoring and goes straight to the pinned directory.
$ pwd
/Users/genadi/development/rails
Notice the jump
command instead of the j
shell function helper. j
will always treat its input as searched terms. It may apply some heuristics to the way the input looks, but it will never accept arguments or switches. Here is where the jump
command comes in. It is bundled with lot's of helpers to make your j
life easier. The pins are one of them.
jump pin
has been revamped and supports spaces in its input. This means that the support for explicit directory is removed from the command-line options.jump unpin
is a new command that lets you remove a pin.jump pins
is a new command that lists the current pins.
Happy pinning, y'all!