Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tkellogg/Jump-Location
Powershell `cd` that reads your mind
https://github.com/tkellogg/Jump-Location
Last synced: 2 months ago
JSON representation
Powershell `cd` that reads your mind
- Host: GitHub
- URL: https://github.com/tkellogg/Jump-Location
- Owner: tkellogg
- License: mit
- Created: 2012-08-02T10:34:50.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2019-09-26T16:48:36.000Z (over 5 years ago)
- Last Synced: 2024-04-16T18:20:21.114Z (9 months ago)
- Language: C#
- Size: 326 KB
- Stars: 465
- Watchers: 12
- Forks: 25
- Open Issues: 17
-
Metadata Files:
- Readme: Readme.md
- License: License.md
Awesome Lists containing this project
- awesome-powershell - Jump-Location - A PowerShell `cd` command that anticipates your intent. 🚧 (🚀 Productivity)
- jimsghstars - tkellogg/Jump-Location - Powershell `cd` that reads your mind (C# #)
README
This project is not actively maintained. Please consider using its successor [`ZLocation`](https://github.com/vors/ZLocation).
=====================---------------------
Jump-Location: A cd that learns
=====================If you spend any time in a console you know that `cd` is by far the most
common command that you issue. I'll open up a console to it's default location
in `C:\Users\tkellogg` or `C:\Windows\system32` and then issue a `cd C:\work\MyProject`.
`Set-JumpLocation` is a cmdlet lets you issue a `j my` to jump
directly to `C:\work\MyProject`.It learns your behavior by keeping track of how long you spend in certain
directories and favoring them over the ones you don't care about. You don't
have to use `Jump-Location` as a replacement for `cd`. Use `cd` to go local, and
use `Set-JumpLocation` to jump further away.`Jump-Location` is a powershell implementation of [autojump][1].
How it knows where you want to go
---------------------------------It keeps track of [how long you stay in a directory][2] and builds a database.
When you use the `Set-JumpLocation` or `j` command, it looks through the database
to find the most likely directory and jumps there. You should only need to
give it a 2-3 character hint. For instance, on mine I can do:* `j de` -> `C:\Users\tkellogg\code\Jump-Location\bin\Debug`
* `j doc` -> `C:\Users\tkellogg\Documents`What if you have several projects and you want to get to the Debug directory
of one that you don't use very often? If you're `jumpstat` looks like this:255 C:\Users\tkellogg\code\Jump-Location\bin\Debug
50 C:\Users\tkellogg\code\MongoDB.FSharp\bin\DebugUsing `j de` will jump to `Jump-Location\bin\Debug`. But use something like
`j mo d` if you really want to go to `MongoDB.FSharp\bin\Debug`. You can
issue a `j mo d`. `mo` matches `MongoDB.FSharp` and `d` matches `Debug`.`j` internally calls `Push-Location`, so you can navigate back in your visited locations stack with `popd` or special Jump-Location query `j -`.
Quick Primer on `jumpstat`
--------------------------You can use `jumpstat` to see what's in the database. In tradition with `autojump`,
the database is saved to `~\jump-location.txt`. You can open up that file and
make changes. The file will auto-load into any open powershell sessions.Since we're in Powershell (and not legacy Bash) `jumpstat` returns _objects_.
This means that you don't ever have to know anything about `~\jump-location.txt`.
You can manipulate the objects it returns. For instance, this is valid:```
PS> $stats = jumpstat
PS> $stats[10].Weight = -1
PS> jumpstat -Save
```Setting a weight to a negative number like that will cause it to be blacklisted
from all jump results. Use the `jumpstat -All` option to see negative weights
included in the jumpstat result set.When you remove/rename directories, Jump-Location database can become out of sync with the file system. Your top-choice will pointed to an invalid location. You can **cleanup** database with `jumpstat -cleanup`. It will remove all records with non-existing paths.
Jumpstat can also be used with the "scan" parameter (jumpstat -scan) to recursively
scan sub-directories into the database with 0 Weight.
This is a quick way to teach Jump-Location about related directories
without having to manually cd'ing to each one individually.Add all subfolders of the current directory:
```
jumpstat -scan .
```Installation
------------*Important:* Jump-Location requires PowerShell version 3 or higher. Older installations of Windows 7 may only have PowerShell version 2. [How to update powershell][7].
**Recommended**: Install from [psget.net][8]:
```
Install-Module Jump.Location
```There is also a [Chocolatey package][6] for Jump-Location. To install via Chocolaty
```
choco install Jump-Location
```Otherwise you can still install it manually.
1. Download [the latest release][5].
2. Open properties for zip file and click "Unblock" button if you have one.
3. Unzip
4. Open a PowerShell console
5. Run `.\Install.ps1`. You may need to allow remote scripts by running
`Set-ExecutionPolicy -RemoteSigned`. You may also have to right-click `Install.ps1`
and Unblock it from the properties window.
**Alternative:**
Add line `Import-Module $modules\Jump-Location\Jump.Location.psd1` to your `$PROFILE`,
where `$modules\Jump-Location` is a path to folder with module.Next time you open a PowerShell console Jump-Location will start learning
your habits. You'll also have access to the `j` and `jumpstat` aliases.If you get errors after installation, try unblocking the file Jump.Location.dll manually by
one of the following methods to clear the "untrusted" flag:1. Copy the file to a FAT32 file system (such as a memory card) and back.
2. Run cmd /c "echo.>Jump.Location.dll:Zone.Identifier"If you find any bugs, please report them so I can fix them quickly!
Build from source
-----------------
From root directory:1. Run `msbuild` .
2. Run `.\copyBuild.ps1`In directory `Build` you will have local build of module.
TODO
----------
1. Local search. `j . blah` will only match dirs under cwd. Using `.` will also search outside the DB.
2. Better PS documentationReferences
----------
1. [old releases][4].[1]: https://github.com/joelthelion/autojump
[2]: http://stackoverflow.com/a/11813545/503826
[3]: http://blogs.msdn.com/b/powershell/archive/2009/07/15/final-approved-verb-list-for-windows-powershell-2-0.aspx
[4]: https://github.com/tkellogg/Jump-Location/downloads
[5]: https://sourceforge.net/projects/jumplocation/files/latest/download
[6]: https://chocolatey.org/packages/Jump-Location
[7]: http://social.technet.microsoft.com/wiki/contents/articles/21016.how-to-install-windows-powershell-4-0.aspx
[8]: http://psget.net/