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

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

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

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Пробую улучшить поисковик для mc.
« Ответ #15 : 29 Апрель 2023, 21:24:31 »
так же заметил что Thunar что Pcmanfm поддерживает опцию открытия терминала из открытой директории, то есть терминал открывается в открытой директории, если до этого в .bash_aliases прописать
Код
alias pcs='xterm -e "/home/<vash user>/.local/bin/mcps.sh"'
, вводим в терминал для перезагрузки оболочки
Код
source ~/.bashrc
  то если  после открытия терминала в нужной вам директории(в Pcmanfm по F4), ввести pcs, откроется окно с peco, в нём производим поиск.
upd: Исправил кое что в скрипте, и дополнил код, подробности в шапке.
upd: Большое спасибо imp и другим принявшим участие форумчанам, штука простая скрипт простой, не ахти что вроде бы делает, но вы не представляете как он мне облегчил работу, кроме того получил опыт, узнал что не обязательно использовать .bashrc для прописывания alias можно использовать .bash_aliases , узнал про премудрости user menu mc .
« Последнее редактирование: 29 Апрель 2023, 21:52:47 от totiks2012 »

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2553
  • Репутация: +33/-0
Re: Пробую улучшить поисковик для mc.
« Ответ #16 : 30 Апрель 2023, 07:06:00 »
xterm
если 'xterm' - настоящий 'xterm' - то, имхо, прикольно ('Ctrl'+разныеКликиМыши попробуй [#если нормально преднастроено; # не скажу что сильно в 'xterm' разобрался, но мне нравится # хотя в некоторых случаях при замерах по 'time' он 'urxvt' уступал ])
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.
« Ответ #17 : 01 Май 2023, 08:45:57 »
----------------------------
изменил код , в котором реализовал опрос на выполнение или отказ от выполнения файла,с помощью enter;esc  а также копирование полного пути выбранного файла в буфер обмена, не обошлось без легкого глюка, но он не влияет существенно на использование скрипта,глюк относится к выходу из peco вместо одного нажатия на комбинацию Ctrl+c необходима нажать на эту комбинацию 2 раза, побороть этот глюк не удалось. не смог поместить в шапку так как Сообщение превышает максимально допустимую длину (5000 знаков).
----------------------------
----------------------------
Скрипт--2
---------------------------
 
Код
#!/bin/bash

function cleanup {
    exit
}

# Устанавливаем обработчик сигнала SIGINT
trap cleanup SIGINT

while true; do
    # Получаем текущую директорию из Midnight Commander
    dir="$PWD"

    # Используем ls для получения списка файлов в директории
    files=$(ls -1 "$dir")

    # Используем peco для выбора файла
    selected=$(echo "$files" | peco --prompt 'Выберите файл > ')

    # Если пользователь нажал Ctrl-C, завершаем программу
    if [[ $? -ne 0 ]]; then
        exit
    fi

    # Получаем полный путь к выбранному файлу
    path=$(readlink -f "$dir/$selected")

    # Копируем полный путь к выбранному файлу в буфер обмена
    echo "$path" | xsel -ib

    # Запрашиваем у пользователя выполнение выбранного файла
    echo "Выполнить файл? (Enter/ESC)"
    read -n 1 answer

    # Если пользователь нажал Enter
    if [[ "$answer" == "" ]]; then
        # Открываем файл
        echo -e "$path"
        echo "Полный путь до файла скопирован  в буфер обмена"
        xdg-open "$path"
        sleep 3
    else
        echo "Полный путь до файла скопирован  в буфер обмена"
        echo -e "$path"     
    fi
     
    # Запрашиваем продолжение работы программы
    echo "Хотите продолжить? (Enter/ESC)"
    read -s -n1 answer

    # Если пользователь нажал Enter (код ASCII: 13)
    if [[ $(printf '%d' "$answer") == "13" ]]; then
        # Пользователь хочет продолжить работу, продолжаем цикл
        continue
    # Если пользователь нажал Esc (код ASCII: 27)
    elif [[ $(printf '%d' "$answer") == '27' ]]; then
        # Пользователь хочет завершить работу, выходим из цикла
        break
    fi

done
 

инструкция использования похожа на первый скрипт, но добавился опрос выполнения или отказ, также оставил опрос на продолжение работы peco, и реализовал помещение полного пути на файл в буфер обмена.оставил оба варианта кода
, может второй вариант избыточен, но как мне показалось второй скрипт будет более функциональный ,  и полезней.
« Последнее редактирование: 01 Май 2023, 10:40:48 от totiks2012 »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5336
  • Репутация: +139/-1
Re: Пробую улучшить поисковик для mc.
« Ответ #18 : 01 Май 2023, 10:58:21 »
Как-то писал по поводу организации заметок у себя:
Сам пишу заметки в обычном блокноте (leafpad), кидаю в специальную папку, а потом сложно и упорно ищу нужное в куче.

Сейчас закинул mcps.sh в эту папку. Оказалось, что с интерактивным поиском уже не так страшно заходить в эти завалы. )

Оффлайн knn

  • Ветеран
  • *****
  • Сообщений: 2553
  • Репутация: +33/-0
Re: Пробую улучшить поисковик для mc.
« Ответ #19 : 01 Май 2023, 14:18:35 »
по поводу организации заметок у себя
в качестве "навязчивой рекламы"
===========
# потом по возможности "сортирую/увязываю " заметки в 'MyTetra'
========
mcps.sh - на практике постараюсь поприменять
« Последнее редактирование: 01 Май 2023, 14:22:23 от knn »
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 ГБ.

Оффлайн Dobrov

  • Пользователь
  • **
  • Сообщений: 49
  • Репутация: +6/-0
Re: Пробую улучшить поисковик для mc.
« Ответ #20 : 01 Май 2023, 17:12:04 »
глюк относится к выходу из peco вместо одного нажатия на комбинацию Ctrl+c необходима нажать на эту комбинацию 2 раза, побороть этот глюк не удалось.
Проверь, может закрытие процесса поможет?
# Если пользователь нажал Ctrl-C, завершаем программу
    if [[ $? -ne 0 ]]; then
        pkill peco
        exit

Оффлайн imp

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

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5336
  • Репутация: +139/-1
Re: Пробую улучшить поисковик для mc.
« Ответ #22 : 01 Май 2023, 17:51:28 »
Именно второй скрипт? У меня тоже с двух раз.

Было интересно поискать решение, но там странная ситуация, ничего не работает, как и решение предложенное выше.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Пробую улучшить поисковик для mc.
« Ответ #23 : 01 Май 2023, 17:59:35 »
  pkill peco
может вместо   pkill peco, killall -9 peco ?

попробовал не помогает, тут скорее наложение сигнала SIGINT самой оболочки peco, на оболочку терминала, но это я уже гадаю... я думаю двойное нажатие ctrl+c не так страшно...

2 krasnyh использовать mcps.sh по моему , удобней в связке с mc, тут мы получаем универсальность, в mc можно ведь делать закладки на каталоги, у меня есть несколько по частоте посещаемости я их в закладки и поместил, и теперь поиск в несколько кликов,... создателям peco от меня низкий поклон!
« Последнее редактирование: 01 Май 2023, 18:20:59 от totiks2012 »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5336
  • Репутация: +139/-1
Re: Пробую улучшить поисковик для mc.
« Ответ #24 : 01 Май 2023, 18:05:15 »
Было интересно поискать решение
Короче, разобрался с bash -x, который показывал + [[ 0 -ne 0 ]].
Надо заменить на [[ $? -ne 1 ]], тогда работает с одного раза.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Пробую улучшить поисковик для mc.
« Ответ #25 : 01 Май 2023, 18:35:48 »
Короче, разобрался с bash -x, который показывал + [[ 0 -ne 0 ]].
прошу меня простить но я слегка не понял
... ааа вы о  результате отладки, ща погляжу
да я нашел у меня это строки
    if [[ $? -ne 0 ]]; then
        exit
    fi
но при замене на [[ $? -ne 1 ]]  и нажатии на ввод после выбора файла происходит выход из peco
« Последнее редактирование: 01 Май 2023, 18:43:44 от totiks2012 »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5336
  • Репутация: +139/-1
Re: Пробую улучшить поисковик для mc.
« Ответ #26 : 01 Май 2023, 19:06:47 »
 :)

Я так был увлечен проблемой двойного Ctrl-C, что на остальное не обратил внимания. )

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1718
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Пробую улучшить поисковик для mc.
« Ответ #27 : 01 Май 2023, 19:16:23 »
может вместо   pkill peco, killall -9 peco ?
kill -9 $(pidof peco)
или
kill -9 `pidof peco`

Однако проблема в условии, кажется
« Последнее редактирование: 01 Май 2023, 19:20:14 от imp »
Компьютер имеет то преимущество перед мозгом, что им пользуются.

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
  • Автор темы
Re: Пробую улучшить поисковик для mc.
« Ответ #28 : 01 Май 2023, 19:49:18 »
 :) тут сама логика вызывает,  эту проблему, дело в том что скрипт открывается в своей оболочке, а peco еще в одной своей, но тогда когда опрос производился по y/n всё отрабатывало правильно, а когда я решил для удобства задействовать  esc;enter вот тут и проявилось, пока нет решения оставлю так но буду по тихому его искать...
« Последнее редактирование: 01 Май 2023, 19:51:31 от totiks2012 »

Оффлайн imp

  • cat /dev/ass > /dev/head
  • Ветеран
  • *****
  • Сообщений: 1718
  • Репутация: +49/-1
  • /dev/hands < /dev/ass
Re: Пробую улучшить поисковик для mc.
« Ответ #29 : 01 Май 2023, 19:51:11 »
Именно второй скрипт? У меня тоже с двух раз.
Блин. Второй таки с двух

Однако проблема в условии, кажется
Не в условии. В построении скрипта. Счас попробую пошаманить.
Компьютер имеет то преимущество перед мозгом, что им пользуются.