lsv: a Rust powered terminal file browser
I finally snapped after one too many trips through modern file browsers on macOS and Windows. Click. Wait. Tiny target. Modal dialog. Repeat. I spend most of my day in a terminal anyway, so I built something that fits how I actually work.
Say hello to lsv.
- GitHub: https://github.com/SecretDeveloper/lsv
- Crates.io: https://crates.io/crates/lsv
What I wanted
- Fly through directories with the keyboard
- See a preview of the thing I have selected
- Hit a key to run a command I chose
- Keep the config in plain text so I can version it and move it across machines
What lsv is
- A small terminal file browser written in Rust, scripted with Lua
- Think of it like a fast directory lister that speaks key bindings and previews
- Inspired by the excellent
lf
, but with a setup that matches how I like to glue tools together
Why Rust and Lua
- I have been learning Rust for a few years and have built some small apps and tools with it, I like the language and it promises increased memory safety which is nice but the real reason is i like the tooling the language comes with, how it manages dependencies, and the cargo system along with crates.io for distribution.
- Lua keeps the configuration simple and flexible without writing a plugin system
How I use lsv
You can bind keys to run shell command. e
for example might launch the selected file in your $EDITOR
or i use t
to launch a new tmux pane for the current directory, or gs
which is bound to lsv.os_run("git status -C {current_dir}")
to see the results in a results window.