lf/README.md
2021-12-03 23:50:58 +03:00

96 lines
3.2 KiB
Markdown

# LF
[Google Groups](https://groups.google.com/forum/#!forum/lf-fm)
| [Wiki](https://github.com/gokcehan/lf/wiki)
| [#lf](https://web.libera.chat/#lf) (on Libera.Chat)
| [#lf:matrix.org](https://matrix.to/#/#lf:matrix.org)
[![Go Report Card](https://goreportcard.com/badge/github.com/gokcehan/lf)](https://goreportcard.com/report/github.com/gokcehan/lf)
[![Go Reference](https://pkg.go.dev/badge/github.com/gokcehan/lf.svg)](https://pkg.go.dev/github.com/gokcehan/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 they are better handled by external tools.
See [faq](https://github.com/gokcehan/lf/wiki/FAQ) for more information and [tutorial](https://github.com/gokcehan/lf/wiki/Tutorial) for a gentle introduction with screencasts.
![multicol-screenshot](http://i.imgur.com/DaTUenu.png)
![singlecol-screenshot](http://i.imgur.com/p95xzUj.png)
## 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
- Configuration with shell commands
- Customizable keybindings (vi and readline defaults)
- Preview filtering (for source highlight, archives, pdfs/images as text etc.)
## Non-Features
- Tabs or windows (handled by window manager or terminal multiplexer)
- Builtin pager/editor (handled by your pager/editor of choice)
## Installation
See [packages](https://github.com/gokcehan/lf/wiki/Packages) for community maintained packages.
See [releases](https://github.com/gokcehan/lf/releases) for pre-built binaries.
If you like to build from the source on unix:
```bash
# For go version < 1.17
env CGO_ENABLED=0 GO111MODULE=on go get -u -ldflags="-s -w" github.com/gokcehan/lf
# For go version >= 1.17
env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/gokcehan/lf@latest
```
On windows `cmd`:
```cmd
REM For go version < 1.17
set CGO_ENABLED=0
set GO111MODULE=on
go get -u -ldflags="-s -w" github.com/gokcehan/lf
REM For go version >= 1.17
set CGO_ENABLED=0
go install -ldflags="-s -w" github.com/gokcehan/lf@latest
```
On windows `powershell`:
```powershell
# For go version < 1.17
$env:CGO_ENABLED = '0'
$env:GO111MODULE = 'on'
go get -u -ldflags="-s -w" github.com/gokcehan/lf
# For go version >= 1.17
$env:CGO_ENABLED = '0'
go install -ldflags="-s -w" github.com/gokcehan/lf@latest
```
## 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](https://pkg.go.dev/github.com/gokcehan/lf).
See [etc](etc) directory to integrate `lf` to your shell or editor.
An example configuration file can also be found in this directory.
See [integrations](https://github.com/gokcehan/lf/wiki/Integrations) to integrate `lf` to other tools.
See [tips](https://github.com/gokcehan/lf/wiki/Tips) for more examples.
## Contributing
See [contributing](https://github.com/gokcehan/lf/wiki/Contributing) for guidelines.