https://github.com/gibbok/jjj
Minimal and fast command-line file lister with Vim key bindings.
https://github.com/gibbok/jjj
c command-line command-line-tool developer-tools file-manager filesystem launcher ncurses productivity terminal vim
Last synced: about 2 months ago
JSON representation
Minimal and fast command-line file lister with Vim key bindings.
- Host: GitHub
- URL: https://github.com/gibbok/jjj
- Owner: gibbok
- License: mit
- Created: 2022-03-24T15:15:46.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-07-27T18:02:03.000Z (almost 4 years ago)
- Last Synced: 2025-10-09T03:16:22.301Z (9 months ago)
- Topics: c, command-line, command-line-tool, developer-tools, file-manager, filesystem, launcher, ncurses, productivity, terminal, vim
- Language: C
- Homepage:
- Size: 21.5 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jjj
`jjj` is a minimal and fast command-line file lister with Vim key bindings.
`jjj` can be used to navigate swiftly your OS and pipe a selected file to other Linux utilities.
Usage examples:
Select a file and pipe it to cat:
```shell
jjj . | xargs cat
```
Select a file and open it with macOS finder:
```shell
jjj /Users | xargs open
```
Select a folder and change directory:
```shell
cd $(jjj .)
```
## Downloads
- Visit the [release page](https://github.com/gibbok/jjj/releases) to download the binaries
- Change the permission of the downloaded file using `chmod +x ./jjj`
*Notes: to install jjj to macOS please follow these instructions [Open a Mac app from an unidentified developer](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac). In order to add jjj to your path follow this [guide](https://gist.github.com/nex3/c395b2f8fd4b02068be37c961301caa7).*
## Key binding
| Key | Description |
| -------- | --------------------------------------------------------------- |
| j | Move cursor down |
| k | Move cursor up |
| h | Visit parent folder |
| l | If directory, visit it, otherwis do nothing |
| q | Exit program |
| esc | Exit program |
| enter | Exit returning path |
| spacebar | Exit returning path |
| r | Update view of the current folder and reset the cursor position |
*Notes: you can also navigate using the arrow keys.*
## Video demo
https://user-images.githubusercontent.com/17195702/175805159-d82c101e-f8b2-4aae-9e8a-490b1d9ab716.mov
## For development
Clone the repository and install dependencies:
```shell
git clone https://github.com/gibbok/jjj.git
brew install ncurses
cd ./jjj
```
Compile and run on macOS:
```shell
make test-files
make dev
```
Build for macOS and Linux using Docker:
```shell
make build-mac
make build-linux
```