My build of lf
Go to file
Paul Ouellette cb7aa13218
Fix a few completion bugs and add a few small features (#934)
* Fix some multibyte character completion bugs

- matchLongest now operates on runes instead of bytes so we don't
  complete part of a multibyte character.
- Fix some places that mixed string and rune slice indices.

* Fix wrong menu completion for subdirectories

When selecting a menu completion for a file in a subdirectory, the
entire filename would be appended to the command line, even if you had
already typed part of it.

* Escape file completions in menu completion

* Minor refactors and typo fixes

* Fix cmd-menu-complete-back bug

The first use of cmd-menu-complete-back after opening the completion
menu was incorrectly selecting the before-last completion instead of the
last completion.

* Allow completing broken symlinks

Also skip files with stat errors instead of returning.

* Add command to accept current menu selection

This is useful when completing filenames. For example

    cmap <c-y> :cmd-menu-accept; cmd-menu-complete

can be used to accept the selected directory completion, then complete
files in the directory.

* Complete command names for map and cmap
2022-10-01 16:31:58 +03:00
.github/workflows bump github actions go version to 1.17 2022-01-22 14:44:54 +03:00
etc Documentation fixes and updates (#933) 2022-10-01 16:29:21 +03:00
gen update doc 2022-04-02 21:18:05 +03:00
.gitignore use dep for dependency management 2018-06-26 00:46:50 +03:00
app.go added history options (#866) 2022-07-10 15:32:34 +03:00
client.go Add tags (#791) 2022-03-28 15:43:05 +03:00
colors_test.go import tcell/v2 from gitlab.com/Provessor/lfp 2020-12-04 23:59:12 +03:00
colors.go feat: case insensitive extension matching for icons & colors (#908) 2022-10-01 16:27:14 +03:00
complete_test.go Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00
complete.go Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00
copy.go set file permissions at creation 2022-01-26 16:52:40 +03:00
diacritics_test.go rename diacritics files 2019-01-18 21:21:31 +03:00
diacritics.go fix ineffective breaks, remove unused parameters (#210) 2019-08-12 14:52:27 +03:00
doc.go Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00
docstring.go Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00
eval_test.go cmap now accepts all expressions (#686) 2021-08-25 18:28:47 +03:00
eval.go Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00
go.mod go mod tidy 2022-02-13 23:42:08 +03:00
go.sum go mod tidy 2022-02-13 23:42:08 +03:00
icons.go feat: case insensitive extension matching for icons & colors (#908) 2022-10-01 16:27:14 +03:00
lf.1 Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00
lf.desktop Add lf.desktop (#222) 2019-08-30 17:32:23 +03:00
LICENSE initial commit 2016-08-13 15:49:04 +03:00
main.go update doc 2022-04-02 21:18:05 +03:00
misc_test.go cleanup 2022-03-19 19:16:51 +03:00
misc.go Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00
nav.go handle colons in paths for tags properly 2022-06-26 15:36:17 +03:00
opts.go added history options (#866) 2022-07-10 15:32:34 +03:00
os_windows.go cleanup 2022-04-03 00:28:29 +03:00
os.go Fix user name, group name and link count display (#829) 2022-05-12 19:25:50 +03:00
parse.go cmap now accepts all expressions (#686) 2021-08-25 18:28:47 +03:00
README.md update doc 2022-04-02 21:18:05 +03:00
scan.go use ascii space/digits in scanner 2021-01-30 18:29:32 +03:00
server.go add command line option for log file 2022-02-06 19:51:52 +03:00
ui.go Fix a few completion bugs and add a few small features (#934) 2022-10-01 16:31:58 +03:00

LF

Google Groups | Wiki | #lf (on Libera.Chat) | #lf:matrix.org (with IRC bridge)

Go Report Card Go Reference

This is a work in progress. Use at your own risk.

lf (as in "list files") is a terminal file manager written in Go with a heavy inspiration from ranger file manager. See faq for more information and tutorial for a gentle introduction with screencasts.

multicol-screenshot singlecol-screenshot

Features

  • Cross-platform (Linux, MacOS, BSDs, Windows)
  • Single binary without any runtime dependencies
  • Fast startup and low memory footprint due to native code and static binaries
  • Asynchronous IO operations to avoid UI locking
  • Server/client architecture and remote commands to manage multiple instances
  • Extendable and configurable with shell commands
  • Customizable keybindings (vi and readline defaults)
  • A reasonable set of other features (see the documentation)

Non-Features

  • Tabs or windows (better handled by window manager or terminal multiplexer)
  • Builtin pager/editor (better handled by your pager/editor of choice)

Installation

See packages for community maintained packages.

See releases for pre-built binaries.

Building from the source requires Go.

On Unix (Go version < 1.17):

env CGO_ENABLED=0 GO111MODULE=on go get -u -ldflags="-s -w" github.com/gokcehan/lf

On Unix (Go version >= 1.17):

env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/gokcehan/lf@latest

On Windows cmd (Go version < 1.17):

set CGO_ENABLED=0
set GO111MODULE=on
go get -u -ldflags="-s -w" github.com/gokcehan/lf

On Windows cmd (Go version >= 1.17):

set CGO_ENABLED=0
go install -ldflags="-s -w" github.com/gokcehan/lf@latest

On Windows powershell (Go version < 1.17):

$env:CGO_ENABLED = '0'
$env:GO111MODULE = 'on'
go get -u -ldflags="-s -w" github.com/gokcehan/lf

On Windows powershell (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.

See etc directory to integrate lf to your shell and/or editor. Example configuration files along with example colors and icons files can also be found in this directory.

See integrations to integrate lf to other tools.

See tips for more examples.

Contributing

See contributing for guidelines.