1

Поиск по файлопомойке  ab
Как в скрипте обрабатывать нажатие Backspace не знаю, поэтому за нее "-" (минус, дефис).

P=""
if [ ! -n "$1" ]
then dr=~
else dr="$1"
fi
while read -n 1 -p "$P" -e IN
do
    P=$P$IN
    if [ "$IN" = '-' ]
    then 
        let n=${#P}-2
        P=${P:0:$n}
    fi
    clear
    ls  "$dr" | grep -i --color $P 2>/dev/null || ( ls  "$dr"
    echo --- 0 Matches -----------------------------------)
done
Leap 42.3 Calculate Linux, Xfce, Emacs, ..

2 (03.02.2015 16:22:36 отредактировано Vascom)

Может добавишь комментариев?
Вместо ! -n лучше использовать -z.

3 (03.02.2015 16:48:57 отредактировано 1000Mhz)

Vascom пишет:

Вместо ! -n лучше использовать -z.

Да я handbook куда-то пролюбил, лепил по памяти.

Vascom пишет:

Может добавишь комментариев?

*занудным голосом* читаем символ со stdin, добавляем в переменную P, фильтруем вывод ls по переменной P, идем читать следующий, если "-" то удаляем последний символ. Т. е. классический поиск по мере набора. На Гитхабе такое есть (на python аж несколько проектов), но меня не устроило т. к. на python то кириллицу не отображает, то еще что-то через жо.

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

4

1000Mhz пишет:

Как в скрипте обрабатывать нажатие Backspace не знаю,

 Консоль:
$ echo -e "ABCDE\b\bXYZ"
ABCXYZ

1000Mhz пишет:

let n=${#P}-2 P=${P:0:$n}

 Консоль:
$ S="ABCDEF"; echo "${S::-2}"
ABCD

PS: годно, но к fuzzy отношения не имеет.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

5

Косячок нашел:
read -n 1 -p "$P" -e IN
с опцией "-е" русский ввод игнорируется. Осталось вспомнить, на кой я ее туда зафигачил  ag

drBatty, благодарю, на досуге подправлю. А fuzzy это не я, это гитхабовские умельцы так назвали))

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

6

Короче, рано наводить красоту. Чтобы это стало юзабельным, нужно:
1. когда число вариантов сократится до разумного минимума добавить нумерацию результатов (это легко)
2. заставить скрипт обрабатывать комбинацию клавиш Alt+цифра для быстрого открытия файла по номеру.
А вот чтобы реализовать п. 2 нужно как-то записать в переменную нажатие Alt+цифра, чтобы его можно было отловить далее. Тут я ффтупике.. впрочем, для "порыться побыстрому" в файлопомойке меня и так устраивает ab

Leap 42.3 Calculate Linux, Xfce, Emacs, ..

7

1000Mhz пишет:

А вот чтобы реализовать п. 2 нужно как-то записать в переменную нажатие Alt+цифра, чтобы его можно было отловить далее. Тут я ффтупике.. впрочем, для "порыться побыстрому" в файлопомойке меня и так устраивает

я думаю, возможностей read(1) вам не хватит.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

8

Добавлю еще вариант:

 Консоль:
xdg-open "$(ls ~/files/ | rofi -dmenu)"

ну или само dmenu, но оно мне не очень нравится.
https://davedavenport.github.io/rofi/

Leap 42.3 Calculate Linux, Xfce, Emacs, ..