My build of lf
5f87cb2542
This commit changes previous reading command implementation to an asynchronous implementation. By the nature of this change, this commit touches many places in the ui and evaluator. Aim is to fix the following problems: - There is no race condition anymore when reading commands and other commands update the ui at the same time. - Autocompletion and keymenu is now drawn in the main draw event. This should fix some ui glitches when a new menu is smaller than the previous one. - Window resize event when reading a command is now properly handled. - Readline actions are now regular commands. This should make it possible to change the default keybindings for these actions in the future. Mentioned in #36. |
||
---|---|---|
etc | ||
gen | ||
.gitignore | ||
.travis.yml | ||
app.go | ||
client.go | ||
comp_test.go | ||
comp.go | ||
doc.go | ||
docstring.go | ||
eval_test.go | ||
eval.go | ||
LICENSE | ||
main.go | ||
misc_test.go | ||
misc.go | ||
nav.go | ||
opts.go | ||
parse_test.go | ||
parse.go | ||
README.md | ||
scan_test.go | ||
scan.go | ||
server.go | ||
ui.go |
LF
This is a work in progress. Use at your own risk.
lf
(as in "list files") is a terminal file manager written in Go.
It is heavily inspired by ranger with some missing and extra features.
Some of the missing features are deliberately omitted
since it is better if they are handled by external tools.
Features
- Cross-platform (Linux, OSX, BSDs, Windows (partial))
- Single binary without any runtime dependencies (except for terminfo database)
- Fast startup and low memory footprint (due to native code and static binaries)
- Server/client architecture to share file selection between multiple instances
- Custom commands as shell commands
- Sync (waiting and non-waiting) and async commands
- Fully customizable keybindings
- Preview filtering (for source highlight, archives, pdfs/images as text etc.)
Non-Features
- Tabs or windows (handled by the window manager or the terminal multiplexer)
- Built-in pager (handled by your pager of choice)
- Image previews (cool but no standard available)
May-Futures
- Bookmarks
- Colorschemes
Installation
See releases for pre-built binaries.
If you like to build from the source:
go get -u github.com/gokcehan/lf
See packages for community maintained packages.
Usage
After the installation lf
command should start the application in the current directory.
Run lf -help
to see command line options.
Run lf -doc
to see the documentation.
See etc directory to integrate lf
to your shell or editor.
An example configuration file can also be found in this directory.