My build of lf
Go to file
2016-08-21 18:41:03 +03:00
doc typos 2016-08-14 18:43:53 +03:00
etc typos 2016-08-14 18:43:53 +03:00
.gitignore initial commit 2016-08-13 15:49:04 +03:00
app.go show completion menu for multiple match 2016-08-21 18:41:03 +03:00
client.go suppress error if configuration file not exists 2016-08-17 22:35:18 +03:00
comp.go show completion menu for multiple match 2016-08-21 18:41:03 +03:00
eval.go show completion menu for multiple match 2016-08-21 18:41:03 +03:00
LICENSE initial commit 2016-08-13 15:49:04 +03:00
main.go cleanup 2016-08-17 23:28:42 +03:00
Makefile initial commit 2016-08-13 15:49:04 +03:00
misc_test.go add misc tests 2016-08-14 22:56:55 +03:00
misc.go add misc tests 2016-08-14 22:56:55 +03:00
nav.go cleanup 2016-08-17 23:28:42 +03:00
opts.go add cursor key bindings 2016-08-13 21:37:09 +03:00
parse.go initial commit 2016-08-13 15:49:04 +03:00
README.md typos 2016-08-14 18:43:53 +03:00
scan_test.go initial commit 2016-08-13 15:49:04 +03:00
scan.go initial commit 2016-08-13 15:49:04 +03:00
server.go initial commit 2016-08-13 15:49:04 +03:00
ui.go show completion menu for multiple match 2016-08-21 18:41:03 +03:00

LF

Please note that this is an experimental file manager. One of the most dangerous pieces of software you can play with. You may accidentally lose your files or worse so use at your own risk.

Likewise it is a work in progress. You will most likely come across some shameful bugs. Also some essentials may not have been implemented yet.

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 ommited since it is better if they are handled by external tools.

multicol-screenshot singlecol-screenshot

Features

  • no external runtime dependencies (except for terminfo database)
  • fast startup and low memory footprint (due to native code and static binaries)
  • server/client architecture to share selection between multiple instances
  • custom commands as shell scripts (hence any other language as well)
  • sync (waiting and skipping) and async commands
  • fully customizable keybindings

Non-Features

  • tabs or windows (handled by the window manager or the terminal multiplexer)
  • built-in pager (handled by your pager of choice)

May-Futures

  • enchanced previews (image, pdf etc.)
  • bookmarks
  • colorschemes
  • periodic refresh
  • progress bar for file yank/delete paste

Installation

You can build from the source using:

go get -u github.com/gokcehan/lf

Currently there are no prebuilt binaries provided.

Usage

After the installation lf command should start the application in the current directory.

See tutorial for an introduction to the configuration.

See reference for the list of keys, options and variables with their default values.

See etc directory to integrate lf to your shell or editor.

File Opener

lf does not come bundled with a file opener. By default it tries to call xdg-open from xdg-utils package. You can change the file opener using the opener option (e.g. set opener mimeopen). Below are a few alternatives you can use:

  • libfile-mimeinfo-perl (executable name is mimeopen)
  • rifle (ranger's default file opener)
  • mimeo
  • custom (using file extensions and/or mimetypes with file command)