Terminal pogryzł człowieka: lf
Tak. Dobrze Państwo przeczytaliście. Lf, nie ls. Co się kryje za tym skrótem? To takie oczywiste – List Files. Brzmi nudnie? Proszę tylko spojrzeć na formułę tego narzędzia i sposób komunikacji z użytkownikiem. To rasowy i tekstowy menedżer plików.
Skoro są przeróżne menedżery plików, po co komu lf? Ten projekt czerpie garściami z innego o nazwie ranger. Niemniej dokłada nieco od siebie. A może inaczej – uzupełnia funkcje rangera o elementy których brakowało autorowi. Tym sposobem lf to małe, zwinne narzędzie, które poprzez prostą konfigurację i nieskomplikowaną składnię znacząco poprawi nasz komfort nawigowania pomiędzy plikami.
Po przeglądnięciu możliwości lf na pierwszy plan wysuwa się jego architektura serwer/klient do wymiany plików, współpraca z linią komend, konfigurowane skróty klawiszowe (vi), filtrowanie wyświetlanej listy (kolorowanie, rozpoznawanie plików. Czy to niewiele? Niekoniecznie. Program dzięki temu jest niewielki, działa błyskawicznie i całość mieści się w jednym pliku binarnym (bez zależności).
Zatem uruchamiamy lf i… I wykorzystując intuicję za pomocą strzałek góra/dół możemy przemieszczać się po liście plików, a strzałkami lewo/prawo przechodzić lub wychodzić z katalogów. Jeżeli prawej strzałki użyjemy na pliku, system spróbuje go otworzyć (plik). O ile będzie to coś obsługiwane.
Póki co nie ma szału, prawda? Jednak warto zapoznać się z lf -doc by zmienić zdanie. Choćby lista najbardziej podstawowych skrótów klawiszowych:
up (default 'k' and '<up>') half-up (default '<c-u>') page-up (default '<c-b>' and '<pgup>') down (default 'j' and '<down>') half-down (default '<c-d>') page-down (default '<c-f>' and '<pgdn>') updir (default 'h' and '<left>') open (default 'l' and '<right>') quit (default 'q') top (default 'gg' and '<home>') bottom (default 'G' and '<end>') toggle (default '<space>') invert (default 'v') unselect (default 'u') copy (default 'y') cut (default 'd') paste (default 'p') clear (default 'c') redraw (default '<c-l>') reload (default '<c-r>') read (default ':') shell (default '$') shell-pipe (default '%') shell-wait (default '!') shell-async (default '&') search (default '/') search-back (default '?') search-next (default 'n') search-prev (default 'N') mark-save (default 'm') mark-load (default "'")
I już widać, że łatwo możemy pliki zaznaczyć do skopiowania (klawisz y), wkleić je w inne miejsce (klawisz p), wywołać linię komend (klawisz $), przekierować nazwę pliku (listę) do linii komend (klawisz %), wyszukać (pod klawiszem /), itp.
Do trybu tekstowe przekazywane są też inne zmienne:
$f current file $fs selected file(s) separated with 'filesep' $fx current file or selected file(s) if any $id id number of the client
Niemniej, aby wykorzystać w pełni uroki konfiguracji skrótów klawiszowych, tworzenia własnych akcji, itp. Trzeba zdać sobie też sprawę z tego, że to dość specjalistyczne narzędzie.
Źródła programu możemy pobrać ze strony projektu na Github. Tam też umieszczone są gotowe prekompilowane binarki z lf, którą to binarkę wystarczy pobrać, rozpakować i uruchomić program (a potem nawet może wkomponować w /usr/bin/).