Сайт | Скачать | Видео | Wiki

Автор Тема: Быстрый поиск в mc  (Прочитано 2934 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1718
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Пробую улучшить поисковик для mc.
« Ответ #30 : 01 Май 2023, 20:00:32 »
Не в условии. В построении скрипта. Счас попробую пошаманить.
Таки в условии.
Заменить
if [[ $? -ne 0 ]]; then
на
if [[ $selected = '' ]]; then
И все работает
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
Re: Пробую улучшить поисковик для mc.
« Ответ #31 : 01 Май 2023, 20:25:40 »
Да, вроде рабочее решение. Если только я опять что-то не упустил. )
Получается это срабатывает проверка на пустое значение $selected.

Но скрипт какой-то мудреный, многослойный, ) раз простого Ctrl-C недостаточно.
Более того, там используется перехватчик сигнала "trap cleanup SIGINT", но и его не хватает.

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1718
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Пробую улучшить поисковик для mc.
« Ответ #32 : 01 Май 2023, 20:35:26 »
Но скрипт какой-то мудреный, многослойный, )

Код
#!/bin/bash
while [ 1 ]
do
    selected=$(ls -1 $(pwd) | peco --prompt 'Выберите файл > ')
    [[ $selected = '' ]] && exit
        echo "$(pwd)/$selected" | xsel -ib
        echo "Полный путь до файла скопирован  в буфер обмена"
    echo "Выполнить файл? (Enter/ESC)"
    read -n 1 answer
        [[ $answer = '' ]] && xdg-open "$(pwd)/$selected"
    echo "Хотите продолжить? (Enter/ESC)"
    read -s -n1 answer
    [[ $answer == $'\x1b' ]] && break
done

Чтобы сильно не мудрить...

P.S.
раз простого Ctrl-C недостаточно.
Ctrl+C срабатывает на peco, который вызван из скрипта, и необходимо повторить, чтобы завершить сам скрипт, т.к. он вообще не получает никакого значения при завершении peco и продолжает выполняться. Потому и в условии - если пустое, то стоп.
Я бы еще копировку в буфер и вывод о ее успешности выкинул, если это не нужно.
« Последнее редактирование: 01 Май 2023, 23:31:20 от imp »
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1718
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Пробую улучшить поисковик для mc.
« Ответ #33 : 01 Май 2023, 20:48:44 »
Не в тему:
Код
curl https://www.anekdot.ru/id/$((SRANDOM%10001+999990)) | grep 'div class="text"' | cut -f5- -d'>' | sed 's/<br>/\n/g' | cut -f1 -d'<' | sed '/^$/d' | sed 's/&quot;//g'
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Пробую улучшить поисковик для mc.
« Ответ #34 : 01 Май 2023, 21:10:27 »
Чтобы сильно не мудрить...
вот что значит человек писал а не машинка! Большое спасибо! Всё вот теперь тема добита, танцую джигу по дому.
upd : Как думаете может скрипт в шапку вместо первого скрипта?

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1718
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Пробую улучшить поисковик для mc.
« Ответ #35 : 01 Май 2023, 21:14:11 »
что значит человек писал а не машинка!
В войне людей и машин победят машины. В войне китайцев и машин - победят китайцы.
может скрипт в шапку вместо первого скрипта?
Лучше оба.
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Пробую улучшить поисковик для mc.
« Ответ #36 : 01 Май 2023, 22:23:33 »
Всё исправленый imp-ом скрипт--3  в шапке,следует брать его, спасибо еще раз вам всем!
« Последнее редактирование: 01 Май 2023, 23:16:42 от totiks2012 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re: Быстрый поиск в mc
« Ответ #37 : 02 Май 2023, 09:29:39 »
Переименовал тему. Поставил +. Народное творчество на форуме возрождается...

Оффлайн Dobrov

  • Пользователь
  • **
  • Сообщений: 49
  • Репутация: +6/-0
Re: Пробую улучшить поисковик для mc.
« Ответ #38 : 02 Май 2023, 09:52:03 »
totiks2012 - вообще-то перезаписывать буфер обмена без подтверждения не очень хорошо!
Сделал копирование по нажатию "С или с", можно добавить ещё действий на другие клавиши.
Скрипт не нужен, он прописан прямо в «~/.config/mc/menu» (без .menu !!!)
Код
s       Фильтр имён текущего каталога: Peco
        while sel=$(ls -1 "%d" | peco --prompt 'Esc: выход, Фильтр имени >') && [[ -n $sel ]]; do
        echo -e "\e[45mEsc выход, Enter запуск файла, «C» путь в буфер\e[0m"
        read -t9 -sn1 key && p="%d/$sel" || break
        case ${key,} in $'\x1b') break;;
            c) xsel -ib<<<"$p"
                echo -e "Полный путь файла в буфере обмена: \n$p"
                sleep 1;;
            '') xdg-open "$p";;
        esac; done

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +33/-0
Re: Быстрый поиск в mc
« Ответ #39 : 02 Май 2023, 10:11:37 »
про буферы обмена искренне интересно обоснованность того мения..(пр. в xwindows system из 4-х на данное время мне известных (не считая некоторых терминальных и внутрипроговых) прл какой именно буфер речь?  (хотя порадалось что коппипастой пароди вводить опасно)
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2543
  • Репутация: +33/-0
Re: Быстрый поиск в mc
« Ответ #40 : 02 Май 2023, 10:15:25 »
Ошибки а предыдущ сообщении - то экран у анротела маленький
Gr4D, Grub2; HP Mini 210 VT - Intel Atom N470  @ 1.83GHz, Intel GMA3150, RAM=2 ГБ ;
Sams-n110: N270 - 1,6 ГГц, Intel GMA 950, RAM=2 ГБ.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Быстрый поиск в mc
« Ответ #41 : 02 Май 2023, 11:53:44 »
Скрипт не нужен, он прописан прямо в «~/.config/mc/menu» (без .menu !!!)
интересное решение но пропали остальные, пункты User menu и при нажатии на s не исполняется скрипт.  При запуске скрипта в режиме отладки судя по всему значение текущей директории не передаётся peco. вот исправил скрипт вам спасибо и +
Скрипт--4 _Dobrov
Код
#!/bin/bash
# Фильтр имён текущего каталога: Peco
while sel=$(ls -1 | peco --prompt 'Esc: выход, Фильтр имени >') && [[ -n $sel ]]; do
    echo -e "\e[45mEsc выход, Enter запуск файла, «C» путь в буфер\e[0m"
    read -t9 -sn1 key && p="$(pwd)/$sel" || break
    case ${key,} in
        $'\x1b') break;;
        c) xsel -ib<<<"$p"
            echo -e "Полный путь файла в буфере обмена: \n$p"
            sleep 1;;
        '') xdg-open "$p";;
    esac
done

сейчас поколдую с вашим вариантом user menu
upd: Dobrov если у вас появятся идеи или вы знаете как отредактировать User Menu,из ~/.config/mc/menu при этом чтоб отрабатовало нажатие по 's' поделитесь пожалуйста, для полной добивки темы.
кому интересно можете брать скрипт от Dobrov он включил фунцию добавления полного пути в буфер обмена,по нажатию клавиши C , попробую поместить в шапку там правда по знакам мало место, но сейсас отредактирую свою лирику, для высвобождения места.
в шапку добавил и скрипт от Dobrov.
upd: я только сейчас понял  Dobrov предложил исполнить действие прямо в конфиге mc, но к сожалению у меня само действие не отработало, я буду позже пробовать, сейчас работу нужно работать :)
« Последнее редактирование: 02 Май 2023, 13:50:17 от totiks2012 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re: Быстрый поиск в mc
« Ответ #42 : 02 Май 2023, 13:25:36 »
как отредактировать User Menu
https://wiki.puppyrus.org/soft/fm/mc#файл_меню
чтоб отрабатовало нажатие
Возможно ваша комбинация повторяется . Т.е. попробуйте заменить s на что-то другое
поместить в шапку там правда по знакам мало место
Прикрепите аттачем в архиве

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Быстрый поиск в mc
« Ответ #43 : 03 Май 2023, 11:46:17 »
Не в тему:
спасибо код с анекдотами унес в свою колекцию.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Быстрый поиск в mc
« Ответ #44 : 13 Май 2023, 11:23:33 »
улучшил  скрипт--4_Dobrov, и написал новый  скрипт--5_Dobrov,я  добавил возможность переименования найденного и выбранного файла, по нажатию клавиши 'R', кроме того изменил цвет сообщения которое предлагает сделать это, а также если хотите изменить цвет строк в peco необходимо создать в ~/.config/peco/ пустой файл config.json  и поместить в него это
Код
{
    "Style": {
        "Basic": ["on_default", "default"],
        "SavedSelection": ["bold", "on_green", "red"],
        "Selected": ["underline", "on_cyan", "black"],
        "Query": ["yellow", "bold"],
        "Matched": ["black", "on_red"]
    }
}
  , подробнее тут https://github.com/peco/peco
кроме того увеличил время показа  строки  выбора действия.
сообщение не вмещается в шапке потому привожу код скрипта тут
----------------------
скрипт_5_Dobrov(c моими правками)(Dobrov еще раз спасибо! И Imp тоже за участие, ибо один код может породить другой)
---------------------
Код
#!/bin/bash
# Фильтр имён текущего каталога: Peco

while sel=$(ls -1 | peco --prompt 'Esc: выход, Фильтр имени >') && [[ -n $sel ]]; do
 echo -e "\e[38;5;208mEsc выход, \e[0m\e[38;5;208mEnter запуск файла, \e[0m\e[38;5;208m«C» путь в буфер, \e[0m\e[38;5;208m«R» переименовать файл\e[0m"

    read -t50 -sn1 key && p="$(pwd)/$sel" || break
    case ${key,} in
        $'\x1b') break;;
        c) xsel -ib<<<"$p"
            echo -e "Полный путь файла в буфере обмена: \n$p"
            read;;
        r) echo "Выбранный файл: $sel"
            echo -e "Введите новое имя файла и нажмите Enter, или нажмите Enter, чтобы оставить прежнее имя:"
            read newname
            if [[ -n "$newname" ]]; then
                mv "$sel" "$newname"
                sel="$newname"
            fi;;
        '') xdg-open "$sel" | clear ;;
    esac
done
« Последнее редактирование: 17 Май 2023, 13:46:28 от totiks2012 »