Skip to content

Releases: gsamokovarov/jump

0.51.0

07 Aug 18:24
Compare
Choose a tag to compare

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

03 Jul 13:18
Compare
Choose a tag to compare

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

Support Ukraine 🇺🇦

💙💛

0.41.0

02 Mar 13:15
Compare
Choose a tag to compare

This humble Jump release is dedicated to my friends in Ukraine! Help them at https://linktr.ee/RazomForUkraine 💙💛

  • Fix jump import for z installation with custom $Z_DATA.
  • Simplify Linux distribution with a Snap package (https://snapcraft.io/jump): sudo snap install jump

Слава Україні!

0.40.0

21 Jan 19:17
Compare
Choose a tag to compare

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

31 Jan 12:36
Compare
Choose a tag to compare

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

30 Jan 19:30
Compare
Choose a tag to compare

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

08 Apr 07:39
Compare
Choose a tag to compare

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

22 Nov 11:07
Compare
Choose a tag to compare

Ahoy, 👋

This release comes with a few minor changes:

  1. 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 called application, for example, j app will no longer end up in a common rails_project/app directory. I'm not telling you to use Rails (you should), but it's just an example! 😅

  2. You can use * or ** in a search term to match arbitrary deep nested directories. For example, you can now implement autojump's jc like:

    bash & zsh

    jc() {
      j "$(basename $PWD)/**/$@"
    }

    fish

    function jc
      j "(basename $PWD)/**/$argv"
    end

0.21.0

07 Sep 21:09
Compare
Choose a tag to compare

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

21 Jul 09:10
Compare
Choose a tag to compare

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!