{"_id":"speed-dial","_rev":"35-dc9b5ae8b9163902db5b421fc55c83df","name":"speed-dial","description":"A CLI bookmarking & shortcuts utility","dist-tags":{"latest":"0.3.3"},"versions":{"0.1.0":{"name":"speed-dial","title":"SpeedDial","description":"A CLI bookmarking & shortcuts utility","version":"0.1.0","homepage":"https://github.com/deefour/speed-dial","author":{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"},"maintainers":[{"name":"deefour","email":"jason@deefour.me"}],"repository":{"type":"git","url":"git://github.com/deefour/SpeedDial.git"},"bugs":"https://github.com/deefour/SpeedDial/issues","licenses":[{"type":"MIT","url":"https://github.com/deefour/SpeedDial/blob/master/LICENSE"}],"dependencies":{"flatiron":"0.3.0","lodash":"0.9.2","prettyjson":"0.7.1","phpjs":"0.0.1","colors":"0.6.0-1","utile":"0.1.5","flatiron-cli-config":"0.1.3","glob":"3.1.14"},"devDependencies":{"cli-easy":"0.1.0","vows":"0.6.1"},"scripts":{"test":"vows --spec","start":"node app.js"},"bin":{"speed-dial":"./bin/speed-dial"},"contributors":[{"name":"Authors ordered by first contribution"},{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"}],"readme":"# SpeedDial\n\n[![Build Status](https://secure.travis-ci.org/deefour/SpeedDial.png)](http://travis-ci.org/deefour/SpeedDial)\n\n(c) 2012 Jason Daly <jason@deefour.me> (http://deefour.me)\n\nReleased under the MIT License.\n\n## Description\n\nSpeedDial is a CLI bookmarking & shortcuts utility, allowing you to alias and index directory paths within 'entry groups', manage directory 'listings' *(SpeedDial will list out the children of a 'listing' and ask which you'd like to make your new current working directory)*, and swap your current working directory quickly by targeting entries or listings.\n\n## Installation\n\n### Dependencies\n\n[Node 0.6+](http://nodejs.org/) or greater is required to run SpeedDial. SpeedDial has so far only been tested on Mac OS.\n\n### Installation\n\n 1. Install the node package by running `npm install speed-dial --global`\n 2. Reload your terminal session to make the `speed-dial` binary available\n 3. Run `speed-dial init`. Specify the path to a file of your choice that your terminal sources. `~/.bash_profile` or `~/.zsh_profile` are good choices for [bash](http://www.gnu.org/software/bash/) and [zsh](http://www.zsh.org/) users respectively\n 4. Reload your terminal session once more so your terminal can source SpeedDial's `functions` file\n\n## Usage\n\nSpeedDial's `init` command sources a bash script from the package making a few commands to interact with SpeedDial available.\n\n - `sd`: The main speed-dial interface\n - `s`: Shortcut to `sd go [alias|id]`\n\nThese `sd` and `s` commands should be your sole method for interacting with SpeedDial. Technically you can interact with SpeedDial without issue using the provided `speed-dial` binary directly, however when calling `speed-dial go [...]` no redirection will occur on exit of the script.\n\n### An Important Note\n\n**SpeedDial should not be run directly using the node package's `bin/speed-dial` binary.**\n\nThere is an inherent issue trying to change the terminal's current working directory from within a child process. Changing the current working directory from within SpeedDial only changes the directory of the child process SpeedDial is running within and only for the duration of the script's execution. Once SpeedDial finishes execution, returning focus back to the main terminal's process, the current working directory will remain as it was prior to executing the SpeedDial command.\n\nSpeedDial works around this limitation by writing the target directory to a file in `/tmp` just before it's process exits. When calling SpeedDial through the available shell functions, the target directory is read from the `/tmp` file and the appropriate `cd [target directory]` command is executed directly within the terminal's process.\n\n**If anyone would like to suggest a better *(and multi-user-friendly)* alternative, please [create an issue](https://github.com/deefour/SpeedDial/issues/new) or send a pull request.**\n\n### Available Commands\n\nLike git, the SpeedDial command delegates to subcommands based on its first argument. The most common subcommands are:\n\n#### sd init\n\n`sd init`\n\nShould only be run once, immediately after installing the SpeedDial node package. A line like the following one is appended to the file you specify when prompted.\n\n```bash\n# Loads SpeedDial functions\n. /path/to/system/node_modules/speed-dial/assets/functions\n```\n\n#### sd version\n\n`sd version`\n\nPrints the currently installed version of SpeedDial.\n\n#### sd list\n\n`sd list [group] [options]`\n\nLists the SpeeDial entries for all groups and listings if no `[group]` is specified. `--raw` can be passed to `[options]` to print a [prettyjson](https://github.com/rafeca/prettyjson) dump of the raw SpeedDial JSON storage in it's entirety.\n\n```bash\nsd list            # lists all entries and listings by group\nsd list default    # lists the entries for the default group\nsd list work       # lists the entries for the 'work' group\nsd list listings   # lists the 'listings' entries\nsd list work --raw # lists the raw SpeedDial JSON storage for the 'work' group\n```\n\nWhenever the `list` command is executed, directly by you or internally by SpeedDial, the entries are ordered by the following criteria\n\n 1. Ascending by entry weight\n 2. Without alias, then *with* alias\n 3. Ascending alphabetically\n\n#### sd group\n\n`sd group [name]`\n\nPrints the name of the currently active group if `[name]` is not provided. If `[name]` *is* provided, SpeedDial's currently active group will be changed.\n\n```bash\nsd group      # prints 'default'\nsd group work # changes currently active group to 'work'\nsd group      # prints 'work'\n```\n\nWhen running a command like `sd go [alias|id]` *(or `s [alias|id] for short`)*, SpeedDial will restrict it's lookup to the currently active group. By switching the active group as you shift focus throughout the day, you can avoid the need to pass the group name to `s` when performing a lookup.\n\n#### sd add\n\n`sd add [path] [alias] [options]`\n\n```bash\nsd add ~/Sites/Deefour.me                   # Adds /Users/deefour/Sites/Deefour.me to the currently active group with no alias\nsd add ~/Documents docs                     # Adds /Users/deefour/Documents to the currently active group with alias 'docs'\nsd add ~/Work/Project1 --group work         # Adds /Users/deefour/Work/Project1 to the 'work' group with no alias\nsd add ~/Work/Project2 p2 --group work      # Adds /Users/deefour/Work/Project2 to the 'work' group with alias 'p2'\nsd add ~/Media/Audio/iTunes mp3s --weight 4 # Adds /Users/deefour/Media/Audio/iTunes to the currently active group with a weight of 4\n```\n\nAdds a new entry to SpeedDial. The `[alias]` is optional, as SpeedDial can lookup an entry based on it's ID within it's group by running `s [entry ID]` *(this is explained more in `sd go` below)*.\n\n#### sd addlisting\n\n`sd addlisting [path] [alias]`\n\nAdds a new listing to SpeedDial. Both `[path]` and `[alias]` are required. **Note:** Listing aliases must be unique to other listing aliases *and* from all group names.\n\n```bash\nsd addlisting ~/Sites sites # adds a new listing with alias 'sites' for path '/Users/deefour/Sites`\n```\n\n#### sd remove\n\n`sd remove`\n\nLists all entries by group and all listings, with an incrementing ID value that is not reset for each group or the listings. Prompts for the ID value corresponding to the entry or listing to be removed. After confirmation, the entry or listing will be removed from the SpeedDial storage.\n\n*For a user-created entry group, if no entries remain in the group after the one specified was removed, the user-created entry group will be removed from the SpeedDial storage too.*\n\n#### sd go & s\n\n`sd go [group|alias|ID] [alias|ID]`\n\n```bash\nsd go               # Lists all entries and listings, prompting the user to select one\nsd go work          # Lists all entries for the 'work' entry group, prompting the user to select one\nsd go listings      # Lists all listings, prompting the user to select one\nsd go listing sites # Lists the child directories of the path associated with the 'sites' alias listing, prompting the user to select one\nsd go me            # (Assuming 'me' is an alias in the curently active group) Switches the current working directory to the path associated with the 'me' alias in the currently active group\nsd go work 1        # Switches the current working directory to the entry associated with ID '1' in the 'work' entry group\n```\n\nThis command obeys the following logic\n\n 1. For calls without an alias/ID specified and those for a specific listing, SpeedDial will list all entries/listings and prompt the user to select an ID for the entry/listing to switch to\n 2. If a group is provided without an alias, SpeedDial will list all entries for the group and prompt the user to select an ID for the entry to switch to\n 3. If a listing is specified, SpeedDial will list all child directories of the listing path and prompt the user to select an ID for the child directory to switch to\n 4. If both a group/listing and alias/ID are provided, the user will not be prompted for anything; the current working directory will be changed immediately\n\n*The bash command function `s` is provided as a shortcut to `sd go`. Since SpeedDial is about minimizing keystrokes required to change a directory, it's recommended you always use `s` in favor of `sd go`.*\n\n## Notes\n\n- Group names and listing aliases must be globally unique\n- Group names, entry aliases, and listing aliases must all start with a letter and may only contain letters, numbers, underscores, and hyphens\n\n## Changelog\n\n### Version 0.1.0 - November 13 2012\n\nInitial project release\n\n- No tests available yet\n- A great deal of refactoring/cleaning to do","readmeFilename":"README.md","_id":"speed-dial@0.1.0","dist":{"shasum":"ea27829c289e201ee61b658e9ea8ad1f2acb8395","tarball":"https://registry.npmjs.org/speed-dial/-/speed-dial-0.1.0.tgz","integrity":"sha512-qs7ll6mMpmMgb2Pdta+hPj8qLhqV2gK+gcexuWar04hXFlRHxi3Le5eXORwC2aV6iBVSHf/IBskvpPeZI4LefQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGiABcK/miz+mhYNdlrl1VVMu2pBps4GdpPoS9w7yfsgIhAMnWgpxraZNNLWH6kZF0mkTjUrMAq/8y/gcfR1+p+gLC"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"deefour","email":"jason@deefour.me"},"directories":{}},"0.2.1":{"name":"speed-dial","title":"SpeedDial","description":"A CLI bookmarking & shortcuts utility","version":"0.2.1","homepage":"https://github.com/deefour/speed-dial","author":{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"},"maintainers":[{"name":"deefour","email":"jason@deefour.me"}],"repository":{"type":"git","url":"git://github.com/deefour/SpeedDial.git"},"bugs":"https://github.com/deefour/SpeedDial/issues","licenses":[{"type":"MIT","url":"https://github.com/deefour/SpeedDial/blob/master/LICENSE"}],"dependencies":{"flatiron":"0.3.0","lodash":"0.9.2","prettyjson":"0.7.1","phpjs":"0.0.1","colors":"0.6.0-1","utile":"0.1.5","flatiron-cli-config":"0.1.3"},"devDependencies":{"cli-easy":"0.1.0","vows":"0.6.1"},"scripts":{"test":"vows --spec","start":"node app.js"},"bin":{"speed-dial":"./bin/speed-dial"},"contributors":[{"name":"Authors ordered by first contribution"},{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"}],"readme":"# SpeedDial\n\n[![Build Status](https://secure.travis-ci.org/deefour/SpeedDial.png)](http://travis-ci.org/deefour/SpeedDial)\n\n(c) 2012 Jason Daly <jason@deefour.me> (http://deefour.me)\n\nReleased under the MIT License.\n\n## Description\n\nSpeedDial is a CLI bookmarking & shortcuts utility, allowing you to alias and index directory paths within 'entry groups', manage directory 'listings' *(SpeedDial will list out the children of a 'listing' and ask which you'd like to make your new current working directory)*, and swap your current working directory quickly by targeting entries or listings.\n\n## Installation\n\n### Dependencies\n\n[Node 0.6+](http://nodejs.org/) or greater is required to run SpeedDial. SpeedDial has so far only been tested on Mac OS.\n\n### Installation\n\n 1. Install the node package by running `npm install speed-dial --global`\n 2. Reload your terminal session to make the `speed-dial` binary available\n 3. Run `speed-dial init`. Specify the path to a file of your choice that your terminal sources. `~/.bash_profile` or `~/.zsh_profile` are good choices for [bash](http://www.gnu.org/software/bash/) and [zsh](http://www.zsh.org/) users respectively\n 4. Reload your terminal session once more so your terminal can source SpeedDial's `functions` file\n\n## Usage\n\nSpeedDial's `init` command sources a bash script from the package making a few commands to interact with SpeedDial available.\n\n - `sd`: The main speed-dial interface\n - `s`: Shortcut to `sd go [alias|id]`\n\nThese `sd` and `s` commands should be your sole method for interacting with SpeedDial. Technically you can interact with SpeedDial without issue using the provided `speed-dial` binary directly, however when calling `speed-dial go [...]` no redirection will occur on exit of the script.\n\n### An Important Note\n\n**SpeedDial should not be run directly using the node package's `bin/speed-dial` binary.**\n\nThere is an inherent issue trying to change the terminal's current working directory from within a child process. Changing the current working directory from within SpeedDial only changes the directory of the child process SpeedDial is running within and only for the duration of the script's execution. Once SpeedDial finishes execution, returning focus back to the main terminal's process, the current working directory will remain as it was prior to executing the SpeedDial command.\n\nSpeedDial works around this limitation by writing the target directory to a file in `/tmp` just before it's process exits. When calling SpeedDial through the available shell functions, the target directory is read from the `/tmp` file and the appropriate `cd [target directory]` command is executed directly within the terminal's process.\n\n**If anyone would like to suggest a better *(and multi-user-friendly)* alternative, please [create an issue](https://github.com/deefour/SpeedDial/issues/new) or send a pull request.**\n\n### Available Commands\n\nLike git, the SpeedDial command delegates to subcommands based on its first argument. The most common subcommands are:\n\n#### sd init\n\n`sd init`\n\nShould only be run once, immediately after installing the SpeedDial node package. A line like the following one is appended to the file you specify when prompted.\n\n```bash\n# Loads SpeedDial functions\n. /path/to/system/node_modules/speed-dial/assets/functions\n```\n\n#### sd version\n\n`sd version`\n\nPrints the currently installed version of SpeedDial.\n\n#### sd list\n\n`sd list [group] [options]`\n\nLists the SpeeDial entries for all groups and listings if no `[group]` is specified. `--raw` can be passed to `[options]` to print a [prettyjson](https://github.com/rafeca/prettyjson) dump of the raw SpeedDial JSON storage in it's entirety.\n\n```bash\nsd list            # lists all entries and listings by group\nsd list default    # lists the entries for the default group\nsd list work       # lists the entries for the 'work' group\nsd list listings   # lists the 'listings' entries\nsd list work --raw # lists the raw SpeedDial JSON storage for the 'work' group\n```\n\nWhenever the `list` command is executed, directly by you or internally by SpeedDial, the entries are ordered by the following criteria\n\n 1. Ascending by entry weight\n 2. Without alias, then *with* alias\n 3. Ascending alphabetically\n\n#### sd group\n\n`sd group [name]`\n\nPrints the name of the currently active group if `[name]` is not provided. If `[name]` *is* provided, SpeedDial's currently active group will be changed.\n\n```bash\nsd group      # prints 'default'\nsd group work # changes currently active group to 'work'\nsd group      # prints 'work'\n```\n\nWhen running a command like `sd go [alias|id]` *(or `s [alias|id] for short`)*, SpeedDial will restrict it's lookup to the currently active group. By switching the active group as you shift focus throughout the day, you can avoid the need to pass the group name to `s` when performing a lookup.\n\n#### sd add\n\n`sd add [path] [alias] [options]`\n\n```bash\nsd add ~/Sites/Deefour.me                   # Adds /Users/deefour/Sites/Deefour.me to the currently active group with no alias\nsd add ~/Documents docs                     # Adds /Users/deefour/Documents to the currently active group with alias 'docs'\nsd add ~/Work/Project1 --group work         # Adds /Users/deefour/Work/Project1 to the 'work' group with no alias\nsd add ~/Work/Project2 p2 --group work      # Adds /Users/deefour/Work/Project2 to the 'work' group with alias 'p2'\nsd add ~/Media/Audio/iTunes mp3s --weight 4 # Adds /Users/deefour/Media/Audio/iTunes to the currently active group with a weight of 4\n```\n\nAdds a new entry to SpeedDial. The `[alias]` is optional, as SpeedDial can lookup an entry based on it's ID within it's group by running `s [entry ID]` *(this is explained more in `sd go` below)*.\n\n#### sd addlisting\n\n`sd addlisting [path] [alias]`\n\nAdds a new listing to SpeedDial. Both `[path]` and `[alias]` are required. **Note:** Listing aliases must be unique to other listing aliases *and* from all group names.\n\n```bash\nsd addlisting ~/Sites sites # adds a new listing with alias 'sites' for path '/Users/deefour/Sites`\n```\n\n#### sd remove\n\n`sd remove`\n\nLists all entries by group and all listings, with an incrementing ID value that is not reset for each group or the listings. Prompts for the ID value corresponding to the entry or listing to be removed. After confirmation, the entry or listing will be removed from the SpeedDial storage.\n\n*For a user-created entry group, if no entries remain in the group after the one specified was removed, the user-created entry group will be removed from the SpeedDial storage too.*\n\n#### sd go & s\n\n`sd go [group|alias|ID] [alias|ID]`\n\n```bash\nsd go               # Lists all entries and listings, prompting the user to select one\nsd go work          # Lists all entries for the 'work' entry group, prompting the user to select one\nsd go listings      # Lists all listings, prompting the user to select one\nsd go listing sites # Lists the child directories of the path associated with the 'sites' alias listing, prompting the user to select one\nsd go me            # (Assuming 'me' is an alias in the curently active group) Switches the current working directory to the path associated with the 'me' alias in the currently active group\nsd go work 1        # Switches the current working directory to the entry associated with ID '1' in the 'work' entry group\n```\n\nThis command obeys the following logic\n\n 1. For calls without an alias/ID specified and those for a specific listing, SpeedDial will list all entries/listings and prompt the user to select an ID for the entry/listing to switch to\n 2. If a group is provided without an alias, SpeedDial will list all entries for the group and prompt the user to select an ID for the entry to switch to\n 3. If a listing is specified, SpeedDial will list all child directories of the listing path and prompt the user to select an ID for the child directory to switch to\n 4. If both a group/listing and alias/ID are provided, the user will not be prompted for anything; the current working directory will be changed immediately\n\n*The bash command function `s` is provided as a shortcut to `sd go`. Since SpeedDial is about minimizing keystrokes required to change a directory, it's recommended you always use `s` in favor of `sd go`.*\n\n## Notes\n\n- Group names and listing aliases must be globally unique\n- Group names, entry aliases, and listing aliases must all start with a letter and may only contain letters, numbers, underscores, and hyphens\n\n## Changelog\n\n### Version 0.2.0 - November 15 2012\n\nJShint now in place\n\n - All code is now linted\n - Initial grunt.js config added\n\n### Version 0.1.0 - November 15 2012\n\nInitial project release\n\n- No tests available yet\n- A great deal of refactoring/cleaning to do","readmeFilename":"README.md","_id":"speed-dial@0.2.1","dist":{"shasum":"00b27d010fd4cfc8060ade3609d78c064d277004","tarball":"https://registry.npmjs.org/speed-dial/-/speed-dial-0.2.1.tgz","integrity":"sha512-wde5A23bkFH3yH5J0wEDd/NOziGmAH3vGkkoqPJxYXnZK8l6S4EaQi1fqMUBlxwyogU+pqVYwP2Ino0fJPG4zA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiUHRhbldd5mACd6i04o0nu1X3YOxF3Tc5Q0V72t8ZrAIhAIrrg5s7dkYwljYFnE3HD7/wfMchbewt65TgSqrWX/KN"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"deefour","email":"jason@deefour.me"},"directories":{}},"0.3.0":{"name":"speed-dial","title":"SpeedDial","description":"A CLI bookmarking & shortcuts utility","version":"0.3.0","homepage":"https://github.com/deefour/speed-dial","author":{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"},"maintainers":[{"name":"deefour","email":"jason@deefour.me"}],"repository":{"type":"git","url":"git://github.com/deefour/SpeedDial.git"},"bugs":"https://github.com/deefour/SpeedDial/issues","licenses":[{"type":"MIT","url":"https://github.com/deefour/SpeedDial/blob/master/LICENSE"}],"dependencies":{"flatiron":"0.3.0","lodash":"0.9.2","prettyjson":"0.7.1","phpjs":"0.0.1","colors":"0.6.0-1","utile":"0.1.5","flatiron-cli-config":"0.1.3"},"devDependencies":{"cli-easy":"0.1.0","vows":"0.6.1"},"scripts":{"test":"vows --spec","start":"node app.js"},"bin":{"speed-dial":"./bin/speed-dial"},"contributors":[{"name":"Authors ordered by first contribution"},{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"}],"readme":"# SpeedDial\n\n[![Build Status](https://secure.travis-ci.org/deefour/SpeedDial.png)](http://travis-ci.org/deefour/SpeedDial)\n\n(c) 2012 Jason Daly <jason@deefour.me> (http://deefour.me)\n\nReleased under the MIT License.\n\n## Description\n\nSpeedDial is a CLI bookmarking & shortcuts utility, allowing you to alias and index directory paths within 'entry groups', manage directory 'listings' *(SpeedDial will list out the children of a 'listing' and ask which you'd like to make your new current working directory)*, and swap your current working directory quickly by targeting entries or listings.\n\n## Installation\n\n### Dependencies\n\n[Node 0.6+](http://nodejs.org/) or greater is required to run SpeedDial. SpeedDial has so far only been tested on Mac OS.\n\n### Installation\n\n 1. Install the node package by running `npm install speed-dial --global`\n 2. Reload your terminal session to make the `speed-dial` binary available\n 3. Run `speed-dial init`. Specify the path to a file of your choice that your terminal sources. `~/.bash_profile` or `~/.zsh_profile` are good choices for [bash](http://www.gnu.org/software/bash/) and [zsh](http://www.zsh.org/) users respectively\n 4. Reload your terminal session once more so your terminal can source SpeedDial's `functions` file\n\n## Usage\n\nSpeedDial's `init` command sources a bash script from the package making a few commands to interact with SpeedDial available.\n\n - `sd`: The main speed-dial interface\n - `s`: Shortcut to `sd go [alias|id]`\n\nThese `sd` and `s` commands should be your sole method for interacting with SpeedDial. Technically you can interact with SpeedDial without issue using the provided `speed-dial` binary directly, however when calling `speed-dial go [...]` no redirection will occur on exit of the script.\n\n### An Important Note\n\n**SpeedDial should not be run directly using the node package's `bin/speed-dial` binary.**\n\nThere is an inherent issue trying to change the terminal's current working directory from within a child process. Changing the current working directory from within SpeedDial only changes the directory of the child process SpeedDial is running within and only for the duration of the script's execution. Once SpeedDial finishes execution, returning focus back to the main terminal's process, the current working directory will remain as it was prior to executing the SpeedDial command.\n\nSpeedDial works around this limitation by writing the target directory to a file in `/tmp` just before it's process exits. When calling SpeedDial through the available shell functions, the target directory is read from the `/tmp` file and the appropriate `cd [target directory]` command is executed directly within the terminal's process.\n\n**If anyone would like to suggest a better *(and multi-user-friendly)* alternative, please [create an issue](https://github.com/deefour/SpeedDial/issues/new) or send a pull request.**\n\n### Available Commands\n\nLike git, the SpeedDial command delegates to subcommands based on its first argument. The most common subcommands are:\n\n#### sd init\n\n`sd init`\n\nShould only be run once, immediately after installing the SpeedDial node package. A line like the following one is appended to the file you specify when prompted.\n\n```bash\n# Loads SpeedDial functions\n. /path/to/system/node_modules/speed-dial/assets/functions\n```\n\n#### sd version\n\n`sd version`\n\nPrints the currently installed version of SpeedDial.\n\n#### sd list\n\n`sd list [group] [options]`\n\nLists the SpeeDial entries for all groups and listings if no `[group]` is specified. `--raw` can be passed to `[options]` to print a [prettyjson](https://github.com/rafeca/prettyjson) dump of the raw SpeedDial JSON storage in it's entirety.\n\n```bash\nsd list            # lists all entries and listings by group\nsd list default    # lists the entries for the default group\nsd list work       # lists the entries for the 'work' group\nsd list listings   # lists the 'listings' entries\nsd list work --raw # lists the raw SpeedDial JSON storage for the 'work' group\n```\n\nWhenever the `list` command is executed, directly by you or internally by SpeedDial, the entries are ordered by the following criteria\n\n 1. Ascending by entry weight\n 2. Without alias, then *with* alias\n 3. Ascending alphabetically\n\n#### sd group\n\n`sd group [name]`\n\nPrints the name of the currently active group if `[name]` is not provided. If `[name]` *is* provided, SpeedDial's currently active group will be changed.\n\n```bash\nsd group      # prints 'default'\nsd group work # changes currently active group to 'work'\nsd group      # prints 'work'\n```\n\nWhen running a command like `sd go [alias|id]` *(or `s [alias|id] for short`)*, SpeedDial will restrict it's lookup to the currently active group. By switching the active group as you shift focus throughout the day, you can avoid the need to pass the group name to `s` when performing a lookup.\n\n#### sd add\n\n`sd add [path] [alias] [options]`\n\n```bash\nsd add ~/Sites/Deefour.me                   # Adds /Users/deefour/Sites/Deefour.me to the currently active group with no alias\nsd add ~/Documents docs                     # Adds /Users/deefour/Documents to the currently active group with alias 'docs'\nsd add ~/Work/Project1 --group work         # Adds /Users/deefour/Work/Project1 to the 'work' group with no alias\nsd add ~/Work/Project2 p2 --group work      # Adds /Users/deefour/Work/Project2 to the 'work' group with alias 'p2'\nsd add ~/Media/Audio/iTunes mp3s --weight 4 # Adds /Users/deefour/Media/Audio/iTunes to the currently active group with a weight of 4\n```\n\nAdds a new entry to SpeedDial. The `[alias]` is optional, as SpeedDial can lookup an entry based on it's ID within it's group by running `s [entry ID]` *(this is explained more in `sd go` below)*.\n\n#### sd addlisting\n\n`sd addlisting [path] [alias]`\n\nAdds a new listing to SpeedDial. Both `[path]` and `[alias]` are required. **Note:** Listing aliases must be unique to other listing aliases *and* from all group names.\n\n```bash\nsd addlisting ~/Sites sites # adds a new listing with alias 'sites' for path '/Users/deefour/Sites`\n```\n\n#### sd remove\n\n`sd remove`\n\nLists all entries by group and all listings, with an incrementing ID value that is not reset for each group or the listings. Prompts for the ID value corresponding to the entry or listing to be removed. After confirmation, the entry or listing will be removed from the SpeedDial storage.\n\n*For a user-created entry group, if no entries remain in the group after the one specified was removed, the user-created entry group will be removed from the SpeedDial storage too.*\n\n#### sd go & s\n\n`sd go [group|alias|ID] [alias|ID]`\n\n```bash\nsd go               # Lists all entries and listings, prompting the user to select one\nsd go work          # Lists all entries for the 'work' entry group, prompting the user to select one\nsd go listings      # Lists all listings, prompting the user to select one\nsd go listing sites # Lists the child directories of the path associated with the 'sites' alias listing, prompting the user to select one\nsd go me            # (Assuming 'me' is an alias in the curently active group) Switches the current working directory to the path associated with the 'me' alias in the currently active group\nsd go work 1        # Switches the current working directory to the entry associated with ID '1' in the 'work' entry group\n```\n\nThis command obeys the following logic\n\n 1. For calls without an alias/ID specified and those for a specific listing, SpeedDial will list all entries/listings and prompt the user to select an ID for the entry/listing to switch to\n 2. If a group is provided without an alias, SpeedDial will list all entries for the group and prompt the user to select an ID for the entry to switch to\n 3. If a listing is specified, SpeedDial will list all child directories of the listing path and prompt the user to select an ID for the child directory to switch to\n 4. If both a group/listing and alias/ID are provided, the user will not be prompted for anything; the current working directory will be changed immediately\n\n*The bash command function `s` is provided as a shortcut to `sd go`. Since SpeedDial is about minimizing keystrokes required to change a directory, it's recommended you always use `s` in favor of `sd go`.*\n\n## Options\n\n### globalLookupFallback\n\nGiven a SpeedDial listing as follows\n\n```bash\n➜  ~ ✗ s\ninfo:\ninfo:    Entry Group: default (active)\ninfo:\ninfo:    1      one             /Users/deefour/Sites/One\ninfo:    2      two             /Users/deefour/Sites/Two\ninfo:    3      three           /Users/deefour/Sites/Three\ninfo:\ninfo:    Entry Group: work\ninfo:\ninfo:    4      proj            /Users/deefour/Work/Proj\ninfo:    5      two             /Users/deefour/Work/Two\n```\n\nIf the following lookup was performed\n\n```bash\n➜  ~ ✗ s proj\nerror:   The target proj does not match any alias in the default group\n```\n\nThe lookup would fail. This can be annoying since the `proj` alias *does* exist, just not in the **active** group.\n\nTo alleviate this frustration while still allowing for the clean organization of aliases within groups, you can set the `globalLookupFallback` config option to `true`.\n\n```bash\n➜  ~ ✗ sd config set globalLookupFallback true\n```\n\nNow the lookup will treat all aliases as though they were in a single group.\n\n```bash\n➜  ~ ✗ s proj\ninfo:    The /Users/deefour/Work/proj path from the work group with scms has been selected\ninfo:    The current working directory is now /Users/deefour/Work/proj\n```\n\n**Note:** The first alias matched will be used. This means in the above example if the alias `two` was searched, it will only ever match the entry in the `default` group unless the `work` group is active or specified on the command line through `s work two` *(in which case the `globalLookupFallback` is ignored anyway)*.\n\n## Notes\n\n- Group names and listing aliases must be globally unique\n- Group names, entry aliases, and listing aliases must all start with a letter and may only contain letters, numbers, underscores, and hyphens\n\n## Changelog\n\n### Version 0.2.0 - November 15 2012\n\nJShint now in place\n\n - All code is now linted\n - Initial grunt.js config added\n\n### Version 0.1.0 - November 15 2012\n\nInitial project release\n\n- No tests available yet\n- A great deal of refactoring/cleaning to do","readmeFilename":"README.md","_id":"speed-dial@0.3.0","dist":{"shasum":"5e881a7bb2338c3df9564e357380dc60961f1297","tarball":"https://registry.npmjs.org/speed-dial/-/speed-dial-0.3.0.tgz","integrity":"sha512-Y70BPeGAhxsFC8jvFIUS0LR4U3N2GkUvVpp+87fCEV5jWRN7TYIy41RjxEfjhuENqfmtMBnk//zUB1DHVWvypg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDy7ecXmNHHTJCbjUh+aKP/Aw84+PLsoyscdkCX4Ts9vAIgTR0W8hIzfO5xgIDUcmSf9H4oNphAO9Qx/GgiM+clhfk="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"deefour","email":"jason@deefour.me"},"directories":{}},"0.3.1":{"name":"speed-dial","title":"SpeedDial","description":"A CLI bookmarking & shortcuts utility","version":"0.3.1","homepage":"https://github.com/deefour/speed-dial","author":{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"},"maintainers":[{"name":"deefour","email":"jason@deefour.me"}],"repository":{"type":"git","url":"git://github.com/deefour/SpeedDial.git"},"bugs":"https://github.com/deefour/SpeedDial/issues","licenses":[{"type":"MIT","url":"https://github.com/deefour/SpeedDial/blob/master/LICENSE"}],"dependencies":{"flatiron":"0.3.0","lodash":"0.9.2","prettyjson":"0.7.1","phpjs":"0.0.1","colors":"0.6.0-1","utile":"0.1.5","flatiron-cli-config":"0.1.3"},"devDependencies":{"cli-easy":"0.1.0","vows":"0.6.1"},"scripts":{"test":"vows --spec","start":"node app.js"},"bin":{"speed-dial":"./bin/speed-dial"},"contributors":[{"name":"Authors ordered by first contribution"},{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"}],"readme":"# SpeedDial\n\n[![Build Status](https://secure.travis-ci.org/deefour/SpeedDial.png)](http://travis-ci.org/deefour/SpeedDial)\n\n(c) 2012 Jason Daly <jason@deefour.me> (http://deefour.me)\n\nReleased under the MIT License.\n\n## Description\n\nSpeedDial is a CLI bookmarking & shortcuts utility, allowing you to alias and index directory paths within 'entry groups', manage directory 'listings' *(SpeedDial will list out the children of a 'listing' and ask which you'd like to make your new current working directory)*, and swap your current working directory quickly by targeting entries or listings.\n\n## Installation\n\n### Dependencies\n\n[Node 0.6+](http://nodejs.org/) or greater is required to run SpeedDial. SpeedDial has so far only been tested on Mac OS.\n\n### Installation\n\n 1. Install the node package by running `npm install speed-dial --global`\n 2. Reload your terminal session to make the `speed-dial` binary available\n 3. Run `speed-dial init`. Specify the path to a file of your choice that your terminal sources. `~/.bash_profile` or `~/.zsh_profile` are good choices for [bash](http://www.gnu.org/software/bash/) and [zsh](http://www.zsh.org/) users respectively\n 4. Reload your terminal session once more so your terminal can source SpeedDial's `functions` file\n\n## Usage\n\nSpeedDial's `init` command sources a bash script from the package making a few commands to interact with SpeedDial available.\n\n - `sd`: The main speed-dial interface\n - `s`: Shortcut to `sd go [alias|id]`\n\nThese `sd` and `s` commands should be your sole method for interacting with SpeedDial. Technically you can interact with SpeedDial without issue using the provided `speed-dial` binary directly, however when calling `speed-dial go [...]` no redirection will occur on exit of the script.\n\n### An Important Note\n\n**SpeedDial should not be run directly using the node package's `bin/speed-dial` binary.**\n\nThere is an inherent issue trying to change the terminal's current working directory from within a child process. Changing the current working directory from within SpeedDial only changes the directory of the child process SpeedDial is running within and only for the duration of the script's execution. Once SpeedDial finishes execution, returning focus back to the main terminal's process, the current working directory will remain as it was prior to executing the SpeedDial command.\n\nSpeedDial works around this limitation by writing the target directory to a file in `/tmp` just before it's process exits. When calling SpeedDial through the available shell functions, the target directory is read from the `/tmp` file and the appropriate `cd [target directory]` command is executed directly within the terminal's process.\n\n**If anyone would like to suggest a better *(and multi-user-friendly)* alternative, please [create an issue](https://github.com/deefour/SpeedDial/issues/new) or send a pull request.**\n\n### Available Commands\n\nLike git, the SpeedDial command delegates to subcommands based on its first argument. The most common subcommands are:\n\n#### sd init\n\n`sd init`\n\nShould only be run once, immediately after installing the SpeedDial node package. A line like the following one is appended to the file you specify when prompted.\n\n```bash\n# Loads SpeedDial functions\n. /path/to/system/node_modules/speed-dial/assets/functions\n```\n\n#### sd version\n\n`sd version`\n\nPrints the currently installed version of SpeedDial.\n\n#### sd list\n\n`sd list [group] [options]`\n\nLists the SpeeDial entries for all groups and listings if no `[group]` is specified. `--raw` can be passed to `[options]` to print a [prettyjson](https://github.com/rafeca/prettyjson) dump of the raw SpeedDial JSON storage in it's entirety.\n\n```bash\nsd list            # lists all entries and listings by group\nsd list default    # lists the entries for the default group\nsd list work       # lists the entries for the 'work' group\nsd list listings   # lists the 'listings' entries\nsd list work --raw # lists the raw SpeedDial JSON storage for the 'work' group\n```\n\nWhenever the `list` command is executed, directly by you or internally by SpeedDial, the entries are ordered by the following criteria\n\n 1. Ascending by entry weight\n 2. Without alias, then *with* alias\n 3. Ascending alphabetically\n\n#### sd group\n\n`sd group [name]`\n\nPrints the name of the currently active group if `[name]` is not provided. If `[name]` *is* provided, SpeedDial's currently active group will be changed.\n\n```bash\nsd group      # prints 'default'\nsd group work # changes currently active group to 'work'\nsd group      # prints 'work'\n```\n\nWhen running a command like `sd go [alias|id]` *(or `s [alias|id] for short`)*, SpeedDial will restrict it's lookup to the currently active group. By switching the active group as you shift focus throughout the day, you can avoid the need to pass the group name to `s` when performing a lookup.\n\n#### sd add\n\n`sd add [path] [alias] [options]`\n\n```bash\nsd add ~/Sites/Deefour.me                   # Adds /Users/deefour/Sites/Deefour.me to the currently active group with no alias\nsd add ~/Documents docs                     # Adds /Users/deefour/Documents to the currently active group with alias 'docs'\nsd add ~/Work/Project1 --group work         # Adds /Users/deefour/Work/Project1 to the 'work' group with no alias\nsd add ~/Work/Project2 p2 --group work      # Adds /Users/deefour/Work/Project2 to the 'work' group with alias 'p2'\nsd add ~/Media/Audio/iTunes mp3s --weight 4 # Adds /Users/deefour/Media/Audio/iTunes to the currently active group with a weight of 4\n```\n\nAdds a new entry to SpeedDial. The `[alias]` is optional, as SpeedDial can lookup an entry based on it's ID within it's group by running `s [entry ID]` *(this is explained more in `sd go` below)*.\n\n#### sd addlisting\n\n`sd addlisting [path] [alias]`\n\nAdds a new listing to SpeedDial. Both `[path]` and `[alias]` are required. **Note:** Listing aliases must be unique to other listing aliases *and* from all group names.\n\n```bash\nsd addlisting ~/Sites sites # adds a new listing with alias 'sites' for path '/Users/deefour/Sites`\n```\n\n#### sd remove\n\n`sd remove`\n\nLists all entries by group and all listings, with an incrementing ID value that is not reset for each group or the listings. Prompts for the ID value corresponding to the entry or listing to be removed. After confirmation, the entry or listing will be removed from the SpeedDial storage.\n\n*For a user-created entry group, if no entries remain in the group after the one specified was removed, the user-created entry group will be removed from the SpeedDial storage too.*\n\n#### sd go & s\n\n`sd go [group|alias|ID] [alias|ID]`\n\n```bash\nsd go               # Lists all entries and listings, prompting the user to select one\nsd go work          # Lists all entries for the 'work' entry group, prompting the user to select one\nsd go listings      # Lists all listings, prompting the user to select one\nsd go listing sites # Lists the child directories of the path associated with the 'sites' alias listing, prompting the user to select one\nsd go me            # (Assuming 'me' is an alias in the curently active group) Switches the current working directory to the path associated with the 'me' alias in the currently active group\nsd go work 1        # Switches the current working directory to the entry associated with ID '1' in the 'work' entry group\n```\n\nThis command obeys the following logic\n\n 1. For calls without an alias/ID specified and those for a specific listing, SpeedDial will list all entries/listings and prompt the user to select an ID for the entry/listing to switch to\n 2. If a group is provided without an alias, SpeedDial will list all entries for the group and prompt the user to select an ID for the entry to switch to\n 3. If a listing is specified, SpeedDial will list all child directories of the listing path and prompt the user to select an ID for the child directory to switch to\n 4. If both a group/listing and alias/ID are provided, the user will not be prompted for anything; the current working directory will be changed immediately\n\n*The bash command function `s` is provided as a shortcut to `sd go`. Since SpeedDial is about minimizing keystrokes required to change a directory, it's recommended you always use `s` in favor of `sd go`.*\n\n## Options\n\n### globalLookupFallback\n\nGiven a SpeedDial listing as follows\n\n```bash\n➜  ~ ✗ s\ninfo:\ninfo:    Entry Group: default (active)\ninfo:\ninfo:    1      one             /Users/deefour/Sites/One\ninfo:    2      two             /Users/deefour/Sites/Two\ninfo:    3      three           /Users/deefour/Sites/Three\ninfo:\ninfo:    Entry Group: work\ninfo:\ninfo:    4      proj            /Users/deefour/Work/Proj\ninfo:    5      two             /Users/deefour/Work/Two\n```\n\nIf the following lookup was performed\n\n```bash\n➜  ~ ✗ s proj\nerror:   The target proj does not match any alias in the default group\n```\n\nThe lookup would fail. This can be annoying since the `proj` alias *does* exist, just not in the **active** group.\n\nTo alleviate this frustration while still allowing for the clean organization of aliases within groups, you can set the `globalLookupFallback` config option to `true`.\n\n```bash\n➜  ~ ✗ sd config set globalLookupFallback true\n```\n\nNow the lookup will treat all aliases as though they were in a single group.\n\n```bash\n➜  ~ ✗ s proj\ninfo:    The /Users/deefour/Work/proj path from the work group with scms has been selected\ninfo:    The current working directory is now /Users/deefour/Work/proj\n```\n\n**Note:** The first alias matched will be used. This means in the above example if the alias `two` was searched, it will only ever match the entry in the `default` group unless the `work` group is active or specified on the command line through `s work two` *(in which case the `globalLookupFallback` is ignored anyway)*.\n\n## Notes\n\n- Group names and listing aliases must be globally unique\n- Group names, entry aliases, and listing aliases must all start with a letter and may only contain letters, numbers, underscores, and hyphens\n\n## Changelog\n\n### Version 0.2.0 - November 15 2012\n\nJShint now in place\n\n - All code is now linted\n - Initial grunt.js config added\n\n### Version 0.1.0 - November 15 2012\n\nInitial project release\n\n- No tests available yet\n- A great deal of refactoring/cleaning to do","readmeFilename":"README.md","_id":"speed-dial@0.3.1","dist":{"shasum":"6785221553808a285af6bf7c98e7a69114aad0d8","tarball":"https://registry.npmjs.org/speed-dial/-/speed-dial-0.3.1.tgz","integrity":"sha512-jyz1SttvJBUGXjrxeinYhUc7kw4M8L100wfvQeLFrH6RBbF6Ga3HHTQmsV9REZFtI2d9g38/5k7S/GBrG/Kf0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB/TPyoPF/DiQXsZCE/Iujor4CphmJY60AspCNFiOFPoAiEAz7zwgcUID6DQydJV1DpJX0UE3TIfL/59whXDC7ym/5Y="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"deefour","email":"jason@deefour.me"},"directories":{}},"0.3.2":{"name":"speed-dial","title":"SpeedDial","description":"A CLI bookmarking & shortcuts utility","version":"0.3.2","homepage":"https://github.com/deefour/speed-dial","author":{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"},"maintainers":[{"name":"deefour","email":"jason@deefour.me"}],"repository":{"type":"git","url":"git://github.com/deefour/speed-dial.git"},"bugs":"https://github.com/deefour/speed-dial/issues","licenses":[{"type":"MIT","url":"https://github.com/deefour/speed-dial/blob/master/LICENSE"}],"dependencies":{"flatiron":"0.3.0","lodash":"0.9.2","prettyjson":"0.7.1","phpjs":"0.0.1","colors":"0.6.0-1","utile":"0.1.5","flatiron-cli-config":"0.1.3"},"devDependencies":{"cli-easy":"0.1.0","vows":"0.6.1"},"scripts":{"test":"vows --spec","start":"node app.js"},"bin":{"speed-dial":"./bin/speed-dial"},"contributors":[{"name":"Authors ordered by first contribution"},{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"}],"readme":"# SpeedDial\n\n[![Build Status](https://secure.travis-ci.org/deefour/SpeedDial.png)](http://travis-ci.org/deefour/SpeedDial)\n\n(c) 2012 Jason Daly <jason@deefour.me> (http://deefour.me)\n\nReleased under the MIT License.\n\n## Description\n\nSpeedDial is a CLI bookmarking & shortcuts utility, allowing you to alias and index directory paths within 'entry groups', manage directory 'listings' *(SpeedDial will list out the children of a 'listing' and ask which you'd like to make your new current working directory)*, and swap your current working directory quickly by targeting entries or listings.\n\n## Installation\n\n### Dependencies\n\n[Node 0.6+](http://nodejs.org/) or greater is required to run SpeedDial. SpeedDial has so far only been tested on Mac OS.\n\n### Installation\n\n 1. Install the node package by running `npm install speed-dial --global`\n 2. Reload your terminal session to make the `speed-dial` binary available\n 3. Run `speed-dial init`. Specify the path to a file of your choice that your terminal sources. `~/.bash_profile` or `~/.zsh_profile` are good choices for [bash](http://www.gnu.org/software/bash/) and [zsh](http://www.zsh.org/) users respectively\n 4. Reload your terminal session once more so your terminal can source SpeedDial's `functions` file\n\n## Usage\n\nSpeedDial's `init` command sources a bash script from the package making a few commands to interact with SpeedDial available.\n\n - `sd`: The main speed-dial interface\n - `s`: Shortcut to `sd go [alias|id]`\n\nThese `sd` and `s` commands should be your sole method for interacting with SpeedDial. Technically you can interact with SpeedDial without issue using the provided `speed-dial` binary directly, however when calling `speed-dial go [...]` no redirection will occur on exit of the script.\n\n### An Important Note\n\n**SpeedDial should not be run directly using the node package's `bin/speed-dial` binary.**\n\nThere is an inherent issue trying to change the terminal's current working directory from within a child process. Changing the current working directory from within SpeedDial only changes the directory of the child process SpeedDial is running within and only for the duration of the script's execution. Once SpeedDial finishes execution, returning focus back to the main terminal's process, the current working directory will remain as it was prior to executing the SpeedDial command.\n\nSpeedDial works around this limitation by writing the target directory to a file in `/tmp` just before it's process exits. When calling SpeedDial through the available shell functions, the target directory is read from the `/tmp` file and the appropriate `cd [target directory]` command is executed directly within the terminal's process.\n\n**If anyone would like to suggest a better *(and multi-user-friendly)* alternative, please [create an issue](https://github.com/deefour/SpeedDial/issues/new) or send a pull request.**\n\n### Available Commands\n\nLike git, the SpeedDial command delegates to subcommands based on its first argument. The most common subcommands are:\n\n#### sd init\n\n`sd init`\n\nShould only be run once, immediately after installing the SpeedDial node package. A line like the following one is appended to the file you specify when prompted.\n\n```bash\n# Loads SpeedDial functions\n. /path/to/system/node_modules/speed-dial/assets/functions\n```\n\n#### sd version\n\n`sd version`\n\nPrints the currently installed version of SpeedDial.\n\n#### sd list\n\n`sd list [group] [options]`\n\nLists the SpeeDial entries for all groups and listings if no `[group]` is specified. `--raw` can be passed to `[options]` to print a [prettyjson](https://github.com/rafeca/prettyjson) dump of the raw SpeedDial JSON storage in it's entirety.\n\n```bash\nsd list            # lists all entries and listings by group\nsd list default    # lists the entries for the default group\nsd list work       # lists the entries for the 'work' group\nsd list listings   # lists the 'listings' entries\nsd list work --raw # lists the raw SpeedDial JSON storage for the 'work' group\n```\n\nWhenever the `list` command is executed, directly by you or internally by SpeedDial, the entries are ordered by the following criteria\n\n 1. Ascending by entry weight\n 2. Without alias, then *with* alias\n 3. Ascending alphabetically\n\n#### sd group\n\n`sd group [name]`\n\nPrints the name of the currently active group if `[name]` is not provided. If `[name]` *is* provided, SpeedDial's currently active group will be changed.\n\n```bash\nsd group      # prints 'default'\nsd group work # changes currently active group to 'work'\nsd group      # prints 'work'\n```\n\nWhen running a command like `sd go [alias|id]` *(or `s [alias|id] for short`)*, SpeedDial will restrict it's lookup to the currently active group. By switching the active group as you shift focus throughout the day, you can avoid the need to pass the group name to `s` when performing a lookup.\n\n#### sd add\n\n`sd add [path] [alias] [options]`\n\n```bash\nsd add ~/Sites/Deefour.me                   # Adds /Users/deefour/Sites/Deefour.me to the currently active group with no alias\nsd add ~/Documents docs                     # Adds /Users/deefour/Documents to the currently active group with alias 'docs'\nsd add ~/Work/Project1 --group work         # Adds /Users/deefour/Work/Project1 to the 'work' group with no alias\nsd add ~/Work/Project2 p2 --group work      # Adds /Users/deefour/Work/Project2 to the 'work' group with alias 'p2'\nsd add ~/Media/Audio/iTunes mp3s --weight 4 # Adds /Users/deefour/Media/Audio/iTunes to the currently active group with a weight of 4\n```\n\nAdds a new entry to SpeedDial. The `[alias]` is optional, as SpeedDial can lookup an entry based on it's ID within it's group by running `s [entry ID]` *(this is explained more in `sd go` below)*.\n\n#### sd addlisting\n\n`sd addlisting [path] [alias]`\n\nAdds a new listing to SpeedDial. Both `[path]` and `[alias]` are required. **Note:** Listing aliases must be unique to other listing aliases *and* from all group names.\n\n```bash\nsd addlisting ~/Sites sites # adds a new listing with alias 'sites' for path '/Users/deefour/Sites`\n```\n\n#### sd remove\n\n`sd remove`\n\nLists all entries by group and all listings, with an incrementing ID value that is not reset for each group or the listings. Prompts for the ID value corresponding to the entry or listing to be removed. After confirmation, the entry or listing will be removed from the SpeedDial storage.\n\n*For a user-created entry group, if no entries remain in the group after the one specified was removed, the user-created entry group will be removed from the SpeedDial storage too.*\n\n#### sd go & s\n\n`sd go [group|alias|ID] [alias|ID]`\n\n```bash\nsd go               # Lists all entries and listings, prompting the user to select one\nsd go work          # Lists all entries for the 'work' entry group, prompting the user to select one\nsd go listings      # Lists all listings, prompting the user to select one\nsd go listing sites # Lists the child directories of the path associated with the 'sites' alias listing, prompting the user to select one\nsd go me            # (Assuming 'me' is an alias in the curently active group) Switches the current working directory to the path associated with the 'me' alias in the currently active group\nsd go work 1        # Switches the current working directory to the entry associated with ID '1' in the 'work' entry group\n```\n\nThis command obeys the following logic\n\n 1. For calls without an alias/ID specified and those for a specific listing, SpeedDial will list all entries/listings and prompt the user to select an ID for the entry/listing to switch to\n 2. If a group is provided without an alias, SpeedDial will list all entries for the group and prompt the user to select an ID for the entry to switch to\n 3. If a listing is specified, SpeedDial will list all child directories of the listing path and prompt the user to select an ID for the child directory to switch to\n 4. If both a group/listing and alias/ID are provided, the user will not be prompted for anything; the current working directory will be changed immediately\n\n*The bash command function `s` is provided as a shortcut to `sd go`. Since SpeedDial is about minimizing keystrokes required to change a directory, it's recommended you always use `s` in favor of `sd go`.*\n\n## Options\n\n### globalLookupFallback\n\nGiven a SpeedDial listing as follows\n\n```bash\n➜  ~ ✗ s\ninfo:\ninfo:    Entry Group: default (active)\ninfo:\ninfo:    1      one             /Users/deefour/Sites/One\ninfo:    2      two             /Users/deefour/Sites/Two\ninfo:    3      three           /Users/deefour/Sites/Three\ninfo:\ninfo:    Entry Group: work\ninfo:\ninfo:    4      proj            /Users/deefour/Work/Proj\ninfo:    5      two             /Users/deefour/Work/Two\n```\n\nIf the following lookup was performed\n\n```bash\n➜  ~ ✗ s proj\nerror:   The target proj does not match any alias in the default group\n```\n\nThe lookup would fail. This can be annoying since the `proj` alias *does* exist, just not in the **active** group.\n\nTo alleviate this frustration while still allowing for the clean organization of aliases within groups, you can set the `globalLookupFallback` config option to `true`.\n\n```bash\n➜  ~ ✗ sd config set globalLookupFallback true\n```\n\nNow the lookup will treat all aliases as though they were in a single group.\n\n```bash\n➜  ~ ✗ s proj\ninfo:    The /Users/deefour/Work/proj path from the work group with scms has been selected\ninfo:    The current working directory is now /Users/deefour/Work/proj\n```\n\n**Note:** The first alias matched will be used. This means in the above example if the alias `two` was searched, it will only ever match the entry in the `default` group unless the `work` group is active or specified on the command line through `s work two` *(in which case the `globalLookupFallback` is ignored anyway)*.\n\n## Notes\n\n- Group names and listing aliases must be globally unique\n- Group names, entry aliases, and listing aliases must all start with a letter and may only contain letters, numbers, underscores, and hyphens\n\n## Changelog\n\n### Version 0.3.0 - November 29 2012\n\n`globalLookupFallback` now available *(see `README.md` for details)*\n\n### Version 0.2.0 - November 15 2012\n\nJShint now in place\n\n - All code is now linted\n - Initial grunt.js config added\n\n### Version 0.1.0 - November 15 2012\n\nInitial project release\n\n- No tests available yet\n- A great deal of refactoring/cleaning to do","readmeFilename":"README.md","_id":"speed-dial@0.3.2","dist":{"shasum":"9e1d080732bd769223568f8bff0f77fa8bd44b4e","tarball":"https://registry.npmjs.org/speed-dial/-/speed-dial-0.3.2.tgz","integrity":"sha512-8Odoquwb64nvJTiKvASNOzswZqOozdycvzKAP7M8P5v9UChm4QCDGfERCXhfx8lQmGqm1HbWEfhd9lFjer/w7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHD2MQAs06dc8WK3GvMYHwM2ZH7+FuwLMyTb3jbXhPVyAiBi4AxL/EwqwDPoYvU+yN+bhRh7ION1BbQIrG5nMTXWsw=="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"deefour","email":"jason@deefour.me"}},"0.3.3":{"name":"speed-dial","title":"speed-dial","description":"A CLI bookmarking & shortcuts utility","version":"0.3.3","homepage":"https://github.com/deefour/speed-dial","author":{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"},"maintainers":[{"name":"deefour","email":"jason@deefour.me"}],"repository":{"type":"git","url":"git://github.com/deefour/speed-dial.git"},"bugs":"https://github.com/deefour/speed-dial/issues","licenses":[{"type":"MIT","url":"https://github.com/deefour/speed-dial/blob/master/LICENSE"}],"dependencies":{"flatiron":"0.3.0","lodash":"0.9.2","prettyjson":"0.7.1","phpjs":"0.0.1","colors":"0.6.0-1","utile":"0.1.5","flatiron-cli-config":"0.1.3"},"devDependencies":{"cli-easy":"0.1.0","grunt-contrib-nodeunit":"~0.1.1","grunt":"~0.3.17"},"scripts":{"test":"vows --spec","start":"node app.js"},"bin":{"speed-dial":"./bin/speed-dial"},"contributors":[{"name":"Authors ordered by first contribution"},{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"}],"readme":"# speed-dial\n\n[![Build\nStatus](https://secure.travis-ci.org/deefour/speed-dial.png)](http://travis-ci.org/deefour/speed-dial)\n\n(c) 2012 Jason Daly <jason@deefour.me> (http://deefour.me)\n\nReleased under the MIT License.\n\n## Description\n\nspeed-dial is a CLI bookmarking & shortcuts utility, allowing you to alias and index directory paths within 'entry groups', manage directory 'listings' *(speed-dial will list out the children of a 'listing' and ask which you'd like to make your new current working directory)*, and swap your current working directory quickly by targeting entries or listings.\n\n## Installation\n\n### Dependencies\n\n[Node 0.6+](http://nodejs.org/) or greater is required to run speed-dial. speed-dial has so far only been tested on Mac OS.\n\n### Installation\n\n 1. Install the node package by running `npm install speed-dial --global`\n 2. Reload your terminal session to make the `speed-dial` binary available\n 3. Run `speed-dial init`. Specify the path to a file of your choice that your terminal sources. `~/.bash_profile` or `~/.zsh_profile` are good choices for [bash](http://www.gnu.org/software/bash/) and [zsh](http://www.zsh.org/) users respectively\n 4. Reload your terminal session once more so your terminal can source speed-dial's `functions` file\n\n## Usage\n\nspeed-dial's `init` command sources a bash script from the package making a few commands to interact with speed-dial available.\n\n - `sd`: The main speed-dial interface\n - `s`: Shortcut to `sd go [alias|id]`\n\nThese `sd` and `s` commands should be your sole method for interacting with speed-dial. Technically you can interact with speed-dial without issue using the provided `speed-dial` binary directly, however when calling `speed-dial go [...]` no redirection will occur on exit of the script.\n\n### An Important Note\n\n**speed-dial should not be run directly using the node package's `bin/speed-dial` binary.**\n\nThere is an inherent issue trying to change the terminal's current working directory from within a child process. Changing the current working directory from within speed-dial only changes the directory of the child process speed-dial is running within and only for the duration of the script's execution. Once speed-dial finishes execution, returning focus back to the main terminal's process, the current working directory will remain as it was prior to executing the speed-dial command.\n\nspeed-dial works around this limitation by writing the target directory to a file in `/tmp` just before it's process exits. When calling speed-dial through the available shell functions, the target directory is read from the `/tmp` file and the appropriate `cd [target directory]` command is executed directly within the terminal's process.\n\n**If anyone would like to suggest a better *(and multi-user-friendly)*\nalternative, please [create an issue](https://github.com/deefour/speed-dial/issues/new) or send a pull request.**\n\n### Available Commands\n\nLike git, the speed-dial command delegates to subcommands based on its first argument. The most common subcommands are:\n\n#### sd init\n\n`sd init`\n\nShould only be run once, immediately after installing the speed-dial node package. A line like the following one is appended to the file you specify when prompted.\n\n```bash\n# Loads speed-dial functions\n. /path/to/system/node_modules/speed-dial/assets/functions\n```\n\n#### sd version\n\n`sd version`\n\nPrints the currently installed version of speed-dial.\n\n#### sd list\n\n`sd list [group] [options]`\n\nLists the SpeeDial entries for all groups and listings if no `[group]` is specified. `--raw` can be passed to `[options]` to print a [prettyjson](https://github.com/rafeca/prettyjson) dump of the raw speed-dial JSON storage in it's entirety.\n\n```bash\nsd list            # lists all entries and listings by group\nsd list default    # lists the entries for the default group\nsd list work       # lists the entries for the 'work' group\nsd list listings   # lists the 'listings' entries\nsd list work --raw # lists the raw speed-dial JSON storage for the 'work' group\n```\n\nWhenever the `list` command is executed, directly by you or internally by speed-dial, the entries are ordered by the following criteria\n\n 1. Ascending by entry weight\n 2. Without alias, then *with* alias\n 3. Ascending alphabetically\n\n#### sd group\n\n`sd group [name]`\n\nPrints the name of the currently active group if `[name]` is not provided. If `[name]` *is* provided, speed-dial's currently active group will be changed.\n\n```bash\nsd group      # prints 'default'\nsd group work # changes currently active group to 'work'\nsd group      # prints 'work'\n```\n\nWhen running a command like `sd go [alias|id]` *(or `s [alias|id] for short`)*, speed-dial will restrict it's lookup to the currently active group. By switching the active group as you shift focus throughout the day, you can avoid the need to pass the group name to `s` when performing a lookup.\n\n#### sd add\n\n`sd add [path] [alias] [options]`\n\n```bash\nsd add ~/Sites/Deefour.me                   # Adds /Users/deefour/Sites/Deefour.me to the currently active group with no alias\nsd add ~/Documents docs                     # Adds /Users/deefour/Documents to the currently active group with alias 'docs'\nsd add ~/Work/Project1 --group work         # Adds /Users/deefour/Work/Project1 to the 'work' group with no alias\nsd add ~/Work/Project2 p2 --group work      # Adds /Users/deefour/Work/Project2 to the 'work' group with alias 'p2'\nsd add ~/Media/Audio/iTunes mp3s --weight 4 # Adds /Users/deefour/Media/Audio/iTunes to the currently active group with a weight of 4\n```\n\nAdds a new entry to speed-dial. The `[alias]` is optional, as speed-dial can lookup an entry based on it's ID within it's group by running `s [entry ID]` *(this is explained more in `sd go` below)*.\n\n#### sd addlisting\n\n`sd addlisting [path] [alias]`\n\nAdds a new listing to speed-dial. Both `[path]` and `[alias]` are required. **Note:** Listing aliases must be unique to other listing aliases *and* from all group names.\n\n```bash\nsd addlisting ~/Sites sites # adds a new listing with alias 'sites' for path '/Users/deefour/Sites`\n```\n\n#### sd remove\n\n`sd remove`\n\nLists all entries by group and all listings, with an incrementing ID value that is not reset for each group or the listings. Prompts for the ID value corresponding to the entry or listing to be removed. After confirmation, the entry or listing will be removed from the speed-dial storage.\n\n*For a user-created entry group, if no entries remain in the group after the one specified was removed, the user-created entry group will be removed from the speed-dial storage too.*\n\n#### sd go & s\n\n`sd go [group|alias|ID] [alias|ID]`\n\n```bash\nsd go               # Lists all entries and listings, prompting the user to select one\nsd go work          # Lists all entries for the 'work' entry group, prompting the user to select one\nsd go listings      # Lists all listings, prompting the user to select one\nsd go listing sites # Lists the child directories of the path associated with the 'sites' alias listing, prompting the user to select one\nsd go me            # (Assuming 'me' is an alias in the curently active group) Switches the current working directory to the path associated with the 'me' alias in the currently active group\nsd go work 1        # Switches the current working directory to the entry associated with ID '1' in the 'work' entry group\n```\n\nThis command obeys the following logic\n\n 1. For calls without an alias/ID specified and those for a specific listing, speed-dial will list all entries/listings and prompt the user to select an ID for the entry/listing to switch to\n 2. If a group is provided without an alias, speed-dial will list all entries for the group and prompt the user to select an ID for the entry to switch to\n 3. If a listing is specified, speed-dial will list all child directories of the listing path and prompt the user to select an ID for the child directory to switch to\n 4. If both a group/listing and alias/ID are provided, the user will not be prompted for anything; the current working directory will be changed immediately\n\n*The bash command function `s` is provided as a shortcut to `sd go`. Since speed-dial is about minimizing keystrokes required to change a directory, it's recommended you always use `s` in favor of `sd go`.*\n\n## Options\n\n### globalLookupFallback\n\nGiven a speed-dial listing as follows\n\n```bash\n➜  ~ ✗ s\ninfo:\ninfo:    Entry Group: default (active)\ninfo:\ninfo:    1      one             /Users/deefour/Sites/One\ninfo:    2      two             /Users/deefour/Sites/Two\ninfo:    3      three           /Users/deefour/Sites/Three\ninfo:\ninfo:    Entry Group: work\ninfo:\ninfo:    4      proj            /Users/deefour/Work/Proj\ninfo:    5      two             /Users/deefour/Work/Two\n```\n\nIf the following lookup was performed\n\n```bash\n➜  ~ ✗ s proj\nerror:   The target proj does not match any alias in the default group\n```\n\nThe lookup would fail. This can be annoying since the `proj` alias *does* exist, just not in the **active** group.\n\nTo alleviate this frustration while still allowing for the clean organization of aliases within groups, you can set the `globalLookupFallback` config option to `true`.\n\n```bash\n➜  ~ ✗ sd config set globalLookupFallback true\n```\n\nNow the lookup will treat all aliases as though they were in a single group.\n\n```bash\n➜  ~ ✗ s proj\ninfo:    The /Users/deefour/Work/proj path from the work group with scms has been selected\ninfo:    The current working directory is now /Users/deefour/Work/proj\n```\n\n**Note:** The first alias matched will be used. This means in the above example if the alias `two` was searched, it will only ever match the entry in the `default` group unless the `work` group is active or specified on the command line through `s work two` *(in which case the `globalLookupFallback` is ignored anyway)*.\n\n## Notes\n\n- Group names and listing aliases must be globally unique\n- Group names, entry aliases, and listing aliases must all start with a letter and may only contain letters, numbers, underscores, and hyphens\n\n## Changelog\n\n### Version 0.3.3 - December 18 2012\n\nFixes issue with speed-dial not being able to write to `/tmp`\n\n - `fs.writeFile` is being used instead of manually opening, writing to,\nand closing the file in `/tmp`\n\n### Version 0.3.0 - November 29 2012\n\n`globalLookupFallback` now available *(see `README.md` for details)*\n\n### Version 0.2.0 - November 15 2012\n\nJShint now in place\n\n - All code is now linted\n - Initial grunt.js config added\n\n### Version 0.1.0 - November 15 2012\n\nInitial project release\n\n- No tests available yet\n- A great deal of refactoring/cleaning to do\n","readmeFilename":"README.md","_id":"speed-dial@0.3.3","dist":{"shasum":"f49457b78e8b5f32dc8af4fc88c27ec244a08813","tarball":"https://registry.npmjs.org/speed-dial/-/speed-dial-0.3.3.tgz","integrity":"sha512-LG5K1WC4y1XUjtLUghGF4glSydXCDsoZa1saOzfyM2d4QaDO0xMiVIWt7qu3GxtcxRwVsWVrBFTCw8iFhCcO3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFptZGlwMOH7bFdL6Z0rXoljWM7u8zvb/YOJYnExQXMwIhAMwkFc84v9ay697DWDot6HgkLelTPSXEvvTLKCVZveBY"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"deefour","email":"jason@deefour.me"}}},"readme":"# SpeedDial\n\n[![Build Status](https://secure.travis-ci.org/deefour/SpeedDial.png)](http://travis-ci.org/deefour/SpeedDial)\n\n(c) 2012 Jason Daly <jason@deefour.me> (http://deefour.me)\n\nReleased under the MIT License.\n\n## Description\n\nSpeedDial is a CLI bookmarking & shortcuts utility, allowing you to alias and index directory paths within 'entry groups', manage directory 'listings' *(SpeedDial will list out the children of a 'listing' and ask which you'd like to make your new current working directory)*, and swap your current working directory quickly by targeting entries or listings.\n\n## Installation\n\n### Dependencies\n\n[Node 0.6+](http://nodejs.org/) or greater is required to run SpeedDial. SpeedDial has so far only been tested on Mac OS.\n\n### Installation\n\n 1. Install the node package by running `npm install speed-dial --global`\n 2. Reload your terminal session to make the `speed-dial` binary available\n 3. Run `speed-dial init`. Specify the path to a file of your choice that your terminal sources. `~/.bash_profile` or `~/.zsh_profile` are good choices for [bash](http://www.gnu.org/software/bash/) and [zsh](http://www.zsh.org/) users respectively\n 4. Reload your terminal session once more so your terminal can source SpeedDial's `functions` file\n\n## Usage\n\nSpeedDial's `init` command sources a bash script from the package making a few commands to interact with SpeedDial available.\n\n - `sd`: The main speed-dial interface\n - `s`: Shortcut to `sd go [alias|id]`\n\nThese `sd` and `s` commands should be your sole method for interacting with SpeedDial. Technically you can interact with SpeedDial without issue using the provided `speed-dial` binary directly, however when calling `speed-dial go [...]` no redirection will occur on exit of the script.\n\n### An Important Note\n\n**SpeedDial should not be run directly using the node package's `bin/speed-dial` binary.**\n\nThere is an inherent issue trying to change the terminal's current working directory from within a child process. Changing the current working directory from within SpeedDial only changes the directory of the child process SpeedDial is running within and only for the duration of the script's execution. Once SpeedDial finishes execution, returning focus back to the main terminal's process, the current working directory will remain as it was prior to executing the SpeedDial command.\n\nSpeedDial works around this limitation by writing the target directory to a file in `/tmp` just before it's process exits. When calling SpeedDial through the available shell functions, the target directory is read from the `/tmp` file and the appropriate `cd [target directory]` command is executed directly within the terminal's process.\n\n**If anyone would like to suggest a better *(and multi-user-friendly)* alternative, please [create an issue](https://github.com/deefour/SpeedDial/issues/new) or send a pull request.**\n\n### Available Commands\n\nLike git, the SpeedDial command delegates to subcommands based on its first argument. The most common subcommands are:\n\n#### sd init\n\n`sd init`\n\nShould only be run once, immediately after installing the SpeedDial node package. A line like the following one is appended to the file you specify when prompted.\n\n```bash\n# Loads SpeedDial functions\n. /path/to/system/node_modules/speed-dial/assets/functions\n```\n\n#### sd version\n\n`sd version`\n\nPrints the currently installed version of SpeedDial.\n\n#### sd list\n\n`sd list [group] [options]`\n\nLists the SpeeDial entries for all groups and listings if no `[group]` is specified. `--raw` can be passed to `[options]` to print a [prettyjson](https://github.com/rafeca/prettyjson) dump of the raw SpeedDial JSON storage in it's entirety.\n\n```bash\nsd list            # lists all entries and listings by group\nsd list default    # lists the entries for the default group\nsd list work       # lists the entries for the 'work' group\nsd list listings   # lists the 'listings' entries\nsd list work --raw # lists the raw SpeedDial JSON storage for the 'work' group\n```\n\nWhenever the `list` command is executed, directly by you or internally by SpeedDial, the entries are ordered by the following criteria\n\n 1. Ascending by entry weight\n 2. Without alias, then *with* alias\n 3. Ascending alphabetically\n\n#### sd group\n\n`sd group [name]`\n\nPrints the name of the currently active group if `[name]` is not provided. If `[name]` *is* provided, SpeedDial's currently active group will be changed.\n\n```bash\nsd group      # prints 'default'\nsd group work # changes currently active group to 'work'\nsd group      # prints 'work'\n```\n\nWhen running a command like `sd go [alias|id]` *(or `s [alias|id] for short`)*, SpeedDial will restrict it's lookup to the currently active group. By switching the active group as you shift focus throughout the day, you can avoid the need to pass the group name to `s` when performing a lookup.\n\n#### sd add\n\n`sd add [path] [alias] [options]`\n\n```bash\nsd add ~/Sites/Deefour.me                   # Adds /Users/deefour/Sites/Deefour.me to the currently active group with no alias\nsd add ~/Documents docs                     # Adds /Users/deefour/Documents to the currently active group with alias 'docs'\nsd add ~/Work/Project1 --group work         # Adds /Users/deefour/Work/Project1 to the 'work' group with no alias\nsd add ~/Work/Project2 p2 --group work      # Adds /Users/deefour/Work/Project2 to the 'work' group with alias 'p2'\nsd add ~/Media/Audio/iTunes mp3s --weight 4 # Adds /Users/deefour/Media/Audio/iTunes to the currently active group with a weight of 4\n```\n\nAdds a new entry to SpeedDial. The `[alias]` is optional, as SpeedDial can lookup an entry based on it's ID within it's group by running `s [entry ID]` *(this is explained more in `sd go` below)*.\n\n#### sd addlisting\n\n`sd addlisting [path] [alias]`\n\nAdds a new listing to SpeedDial. Both `[path]` and `[alias]` are required. **Note:** Listing aliases must be unique to other listing aliases *and* from all group names.\n\n```bash\nsd addlisting ~/Sites sites # adds a new listing with alias 'sites' for path '/Users/deefour/Sites`\n```\n\n#### sd remove\n\n`sd remove`\n\nLists all entries by group and all listings, with an incrementing ID value that is not reset for each group or the listings. Prompts for the ID value corresponding to the entry or listing to be removed. After confirmation, the entry or listing will be removed from the SpeedDial storage.\n\n*For a user-created entry group, if no entries remain in the group after the one specified was removed, the user-created entry group will be removed from the SpeedDial storage too.*\n\n#### sd go & s\n\n`sd go [group|alias|ID] [alias|ID]`\n\n```bash\nsd go               # Lists all entries and listings, prompting the user to select one\nsd go work          # Lists all entries for the 'work' entry group, prompting the user to select one\nsd go listings      # Lists all listings, prompting the user to select one\nsd go listing sites # Lists the child directories of the path associated with the 'sites' alias listing, prompting the user to select one\nsd go me            # (Assuming 'me' is an alias in the curently active group) Switches the current working directory to the path associated with the 'me' alias in the currently active group\nsd go work 1        # Switches the current working directory to the entry associated with ID '1' in the 'work' entry group\n```\n\nThis command obeys the following logic\n\n 1. For calls without an alias/ID specified and those for a specific listing, SpeedDial will list all entries/listings and prompt the user to select an ID for the entry/listing to switch to\n 2. If a group is provided without an alias, SpeedDial will list all entries for the group and prompt the user to select an ID for the entry to switch to\n 3. If a listing is specified, SpeedDial will list all child directories of the listing path and prompt the user to select an ID for the child directory to switch to\n 4. If both a group/listing and alias/ID are provided, the user will not be prompted for anything; the current working directory will be changed immediately\n\n*The bash command function `s` is provided as a shortcut to `sd go`. Since SpeedDial is about minimizing keystrokes required to change a directory, it's recommended you always use `s` in favor of `sd go`.*\n\n## Notes\n\n- Group names and listing aliases must be globally unique\n- Group names, entry aliases, and listing aliases must all start with a letter and may only contain letters, numbers, underscores, and hyphens\n\n## Changelog\n\n### Version 0.1.0 - November 13 2012\n\nInitial project release\n\n- No tests available yet\n- A great deal of refactoring/cleaning to do","maintainers":[{"name":"deefour","email":"jason@deefour.me"}],"time":{"modified":"2022-06-26T22:45:43.152Z","created":"2012-11-15T23:00:07.152Z","0.1.0":"2012-11-15T23:00:08.401Z","0.2.1":"2012-11-16T13:47:37.687Z","0.3.0":"2012-11-29T22:21:24.216Z","0.3.1":"2012-11-29T22:22:26.092Z","0.3.2":"2012-11-30T04:27:09.915Z","0.3.3":"2012-12-18T21:21:30.579Z"},"author":{"name":"Jason Daly","email":"jason@deefour.me","url":"http://deefour.me"},"repository":{"type":"git","url":"git://github.com/deefour/speed-dial.git"}}