cb7aa13218
* 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 |
||
---|---|---|
.github/workflows | ||
etc | ||
gen | ||
.gitignore | ||
app.go | ||
client.go | ||
colors_test.go | ||
colors.go | ||
complete_test.go | ||
complete.go | ||
copy.go | ||
diacritics_test.go | ||
diacritics.go | ||
doc.go | ||
docstring.go | ||
eval_test.go | ||
eval.go | ||
go.mod | ||
go.sum | ||
icons.go | ||
lf.1 | ||
lf.desktop | ||
LICENSE | ||
main.go | ||
misc_test.go | ||
misc.go | ||
nav.go | ||
opts.go | ||
os_windows.go | ||
os.go | ||
parse.go | ||
README.md | ||
scan.go | ||
server.go | ||
ui.go |
LF
Google Groups | Wiki | #lf (on Libera.Chat) | #lf:matrix.org (with IRC bridge)
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.
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.