Skip to content

goto is a lightweight terminal tool that simplifies directory navigation.

License

Notifications You must be signed in to change notification settings

gabrielg2020/goto

Repository files navigation

goto

goto is a lightweight terminal tool that simplifies directory navigation.

Features

  • Quickly navigate directories with fuzzy search.
  • Customise behaviour with configuration options.
  • Compatible with Bash and Zsh shells.

Installation

Using a Package Manager

Coming soon!

Manual Installation

1. Clone the repository:

git clone https://github.com/gabrielg2020/goto.git
cd goto

2. Build the binary:

go build -o goto ./cmd/

3. Move the binary to a directory in your PATH:

mv goto /usr/local/bin/

4. Install dependencies

Please make sure that these are installed.

Shell Integration

Automated Integration

Run the provided setup script to automate this setup:

./setup.sh

Manual Integration

Add the following function to your .bashrc or .zshrc:

goto() {
    dir=$(/usr/local/bin/goto "$@")

    if [ -d "$dir" ]; then
        echo "Changing directory to: $dir"
        cd "$dir"
    else
        echo "No directory selected or invalid directory: $dir"
    fi
}

Verify Installation

Note

Coming soon!

goto --help

Usage

Basic Command

goto <pattern>

Example

goto src

Options

Option Description
-d Specify maximum search depth.
-h Display help message.
<pattern> Fuzzy search pattern for directories.

Configuration

goto uses a configuration file located at ~/.goto_config.yaml. This file is optional and allows you to customise the tool's behaviour.

Example Configuration

maxDepth: 3
excludeDirs:
  - node_modules
  - .git
  - .vscode

Options

Option Description Default
maxDepth Maximum search depth. 5
excludeDirs Directories to be excluded from the search. ".git", "node_modules"

Contributing

We welcome contributions! Please look at CONTRIBUTING.md to learn how to contribute.

developers.md

The Developers Guide explains some key ideas and decisions, future consideration and extra knowledge of this project.

Change Log

Change Log

Documentation

Coming Soon!

License

The MIT Licence (MIT)

Copyright (c) 2023 - 2024 Gabriel Guimaraes. All Rights Reserved.

About

goto is a lightweight terminal tool that simplifies directory navigation.

Resources

License

Code of conduct

Stars

Watchers

Forks