вторник, 19 июля 2016 г.

Меню с нечётким поиском в консоли


Сегодня будет сказка о утилите fzf (command line fuzzy finder). В основе лежит простая идея: fzf читает строки из STDIN, отображает в виде меню с нечётким поиском в консоли и пишет выбранную строку в STDOUT. Несмотря на, скажем даже, примитивность, такой подход позволяет удобно интегрировать со стандартными утилитами командной строки и делать интересные вещи. Ниже приведу несколько примеров того, что на её основе можно сделать.


 

Поиск файла

Начнём с самого простого примера - найти файл в текущей директории и открыть в nano.

Список файлов без git директории:
find * -type f -not -path '*/.git/*'
Передаём список в fzf и добавляем привью для файлов, в котором отображаем первые 30 строк:
find * -type f -not -path '*/.git/*' | fzf --preview="head -30 {}"
И последним шагом - выбранный путь передаём в nano:
nano $(find * -type f -not -path '*/.git/*' | fzf --preview="head -$LINES {}")
Теперь можно однострочник заворачивать в скрипт и добавлять в PATH. И пользоваться:
Энтузиасты сделали на этом механизме целый файловый менеджер.

 

История команд

Предыдущий пример хоть и самый очевидный способ применения, но у меня не прижился. Можно использовать утилиту гораздо интереснее. Например сделать поиск по истории команд консоли. Встроенный - сделан чужими для хищников и пользоваться им лишний раз не хочется.

Для реализации внешним скриптом обойтись не получилось, не вышло добавить результат в строку редактирования, пришлось писать widget для zsh. Для bash он в чистом виде не подойдёт, но переделать не составит труда. Представленный ниже скрипт впишите в ".zshrc":
fzf-history-widget() {
  LBUFFER=$(fc -lnr 1 | fzf --tiebreak=begin)
  zle redisplay
}

zle -N fzf-history-widget
bindkey '^R' fzf-history-widget
Тут:
  • "fc -lnr 1" - возвращает инвертированный список всех ранее введённых команд
  • опция "–tiebreak=begin" для fzf - при сортировке результатов, предпочитать строки с совпадениями ближе к началу
  • всё остальное это специфичный для zsh способ записать результат в строку редактирования и навесить на это горячую клавишу ctrl+R
Выглядит вот так:

 

Закладки

Ещё один пример удобного использования - закладки для перехода в часто используемые директории. Он так же, как и предыдущий написан для zsh и добавляется в ".zshrc":
function fzf-bookmarks-widget() {
  cd $(cat "$HOME/.config/bookmarks.cfg" | fzf --tiebreak=begin --tac | awk '{print $2}')
  zle reset-prompt
}

zle -N fzf-bookmarks-widget
bindkey '^D' fzf-bookmarks-widget
Файл настроек - "bookmarks.cfg" имеет вот такой вид:
menu_item_1: /home/rean/test1
menu_item_2: /home/rean/test2
menu_item_3: /home/rean/test3
Т.е. имя закладки без пробелов и через пробел - путь к директории.

Общая идея скрипта: читаем построчно "bookmarks.cfg", отображаем через fzf, из результата достаём второй столбец с путём к директории, переходим в него. Буквально 1 строка (не считая обвязки для zsh) и менеджер закладок готов. Навешиваем горячую клавишу ctrl+D и пользуемся.

Сюда не сложно добавить операции добавления и удаления новых элементов прямо из zsh. Но по опыту - список изменяется настолько редко, что алиасы для команд забываются, их приходиться искать в исходниках. В итоге быстрее вручную удалить\добавить строчку в конфиге.

 

Что ещё…

Что ещё можно сделать, зависит от вашей фантазии, вот навскидку составленный список:
  • Поиск процесса + "kill -9".
  • Выбор файлов для "git add".
  • Интеграция с менеджерами паролей.
  • Сделать TODO лист.
  • Поиск по истории браузера.
Если лень писать самому, существуют готовые пакеты с плагинами.

10 комментариев:

  1. Грибок - , вызываемый различными патогенными бактериями, является одним из наиболее часто встречающихся заболеваний, характеризующихся широкой симптоматикой весьма неприятных проявлений. Подцепить эту острозаразную болезнь можно практически везде: в сауне, бассейне, на пляже а также любом другом месте общественного пользования. И невзира на тот факт, что в настоящее время на рынке присутствует нескончаемое множество разнообразных аптечных гелей и мазей, до выхода на рынок лечебного комплекса Варанга за короткое время покончить с болезнетворными микробактериями, влияющими не только на общеэстетический вид кожные покровы и ногтевых пластин, но и причиняют значительный ущерб тканям, было очень трудно. Благодаря этому инновационному крему, с неподражаемым натуральным составом, устранение грибка больше не является трудной задачей. Не занимает много времени и не требует, как раньше, множества усилий. Вылечить грибок стоп и ногтей можно всего лишь за один месяц пользования мазью. VarangaOfficial - варанга средство от грибка - самая большая и исчерпывающа подборка фактов. Воспользовавшись услугами нашего ресурса, вы сможете узнать полную информацию касательно данного лекарственного средства. Лично увидеть данные о проведенных клинических тестированиях, прочесть реальные отзывы пользователей и врачей. Ознакомиться с инструкцией по применению, прочесть об особенностях и методах работы мази, понять, в чем заключаются особенности работы крема Варанга, где нужно покупать оригинальный сертифицированный препарат и, как избежать покупки подделки. Мы скурпулезно проверяем размещаемые данные. Предоставляем пользователям нашего ресурса сведения, почерпнутые только из надежных источников. Если вы обнаружили признаки появления грибка или же долго и безрезультатно пытаетесь избавиться от этого коварного недуга, у нас на сайте вы найдете легкий и быстрый способ устранения проблемы. Приобщайтесь и живите здоровой полноценной жизнью. Теперь все ответы на самые популярные и волнующие пользователей вопросы, собраны на одном ресурсе.

    ОтветитьУдалить
  2. Вам нужен опытный документ по специальности специальная торговля, но делать это нужно по максимально выгодной стоимости или на законном гознаке, с предотвращением мошенничества, да еще и без предоплаты, с оперативной доставкой в существующий населенный пункт и с гарантией? Тогда мы поздравляем вас, так что вы попали хорошо!,, Top diplomates corporation, которая недавно отпраздновала "пятнадцать лет" бесперебойной работы в соответствующем секторе документооборота, предлагает дипломы в специальной торговле реальными ценными бумагами по очень приятной стоимости! С помощью наших опытных услуг уже через неделю вы легко определитесь с уважаемой вакансией и воплотите свои фантазии в жизнь! Что выгоднее купить здесь специальный коммерческий сертификат? - Наши корочки, выписанные на реальные бланки, изготовленные в организациях государственного образца и особого знака!,, Коричневые все одинаковые, почему формально награждаются выпускники образовательных учреждений российской федерации. - Внутри россии, как и за рубежом государства, существуют курьерские службы, службы доставки "непосредственно вам лично". - оплата взимается по окончании проверки диплома под наблюдением курьера) в случае соответствия всем характеристикам. Мы даем абсолютную гарантию качества в пределах границ россии!,, С помощью торрента у вас есть возможность с гарантированным качеством гознака приобрести документы на специальные коммерческие перевозки в пределах столицы, санкт-петербурга, всей российской федерации без каких-либо предоплат! Получите корочку для специального рекламного ролика по приятной цене вместе с "высшими дипломами" и двигайтесь к своей цели! Если вам понравилась эта короткая статья, или вы определенно хотите изучить конкретную информацию о купить диплом о высшем образовании, Вы можете связаться с нами на вашем ресурсе.

    ОтветитьУдалить
  3. Сегодня социальная ипотека доступна при соблюдении определенных параметров. И покупать все происходит в самых разных банках российской федерации. Как получить социальную ипотеку в уфе в 2021 Для того чтобы получить социальную ипотеку в уфе, рекомендуется воспользоваться нашим ресурсом. Вы можете получить: - Список банков, в которых выдаются социальные ипотечные кредиты в уфе в 2021 году; - Размер наценки и ставка; - Возможность подать онлайн-заявку на ипотеку с помощью нашего сайта. Рекомендуется обратиться более чем в пару банков, чтобы увеличить вероятность благоприятного исхода. Кто может взять квартиру в уфе по социальной ипотеке Социальная ипотека выдается гражданам, нуждающимся в улучшении жилищных условий, а также бюджетникам (учителям, врачам, военнослужащим, молодым семьям). Вот стандартные предложения по предоставлению вам финансирования в кредит: - Российское гражданство; - Возраст от 21 до 65 лет к самому закрытию кредита; - Наличие официального и стабильного дохода; - Регистрация в области регистрации ипотеки; - Стаж работы на новом месте по профессии также составляет шесть месяцев; - Наличие факторов для предоставления льгот при получении ипотеки. Первоначальные условия могут быть согласованы с кредитным специалистом с учетом деталей кредитной программы. Условия социальной социальной ипотеки в уфе Приобрести комнаты в уфе по социальной ипотеке можно как минимум по равным стартовым параметрам. Стоит рассмотреть список банков, которые готовы кредитовать деньги на покупку жилья на первичном или вторичном рынке под сниженный процент, а также при покупке территории для строительства дома. Основные правила кредитования в финансовых учреждениях уфы: - Ставка-от одного.Один до 68% годовых; - Срок действия договора составляет до 300 месяцев; - Оплата аннуитетными платежами; - В течение указанного срока кредита жилье обеспечено банком и имеется договор страхования. Вот несколько надежных банков, в которые вам нужно обратиться: - Сбербанк; - Райффайзенбанк; - Альфа-банк; - Открытие; - Втб; Вы также можете обратиться в другое время. Однако это банки федерального уровня, и методы кредитования в них уже самые приятные. В некоторых регионах существуют региональные компенсации и надбавки за строительство здания. Тогда можно будет генерировать до 75% инвестированного финансирования строительства из государственного бюджета. Когда эта статья будет выбрана для вас, и вы захотите получить более полную информацию о выгодная ипотека в уфе, Пожалуйста, ознакомьтесь с этой интернет-службой.

    ОтветитьУдалить
  4. Теперь мы начнем процесс преобразования музыки с компакт-диска. В форме с подробными форматами выберите mp3. Затем нажмите "сохранить отмеченные дорожки". В появившемся окне укажите правильное сохранение на компьютере и укажите название композиции песни, затем подтвердите настройки кнопкой "сохранить". Преобразование начнется автоматически. Дождитесь события, когда программа сообщит об успешном завершении существования и уведомит вас об открытии каталога с сохраненным в нем файлом. С помощью аудиомастера вы можете не только конвертировать аудио cd в mp3, но и конвертировать один формат в нужный, потратив на что угодно меньше нескольких минут. Программа также предоставит гадалке возможность быстро вырезать песню, извлечь звук из порно и выполнить множество других работ по редактированию аудио. У владельцев есть некоторые вопросы о том, где и как гостмейн Можно приручить, вы можете связаться с нами на нашем портале.

    ОтветитьУдалить
  5. Рождается недоумение, а проще, гознак или "специальная форма", киржач или ооо "знак". На самом деле этот список не полный, есть несколько коммерческих производств, которые получили государственные права на выпуск. Зачем сравнивать эту реальность с ними? Какой смысл приобретать сертификат о военном образовании в орехово-зуево? Снимает этот вопрос просто, лучше иметь человека на гербовых бумагах, который предлагает дипломы в университете mp4. Суть в следующем, руководство способно определять поставщиков бланков и гознака без контроля, в дополнение к любому не очень дешевому партнеру". Законность идентична, поэтому частные компании предпочитают другие типографии. В случае, если вас заинтересовала эта короткая статья, и вы мечтаете получить подробную информацию о дипломы в златоустье цена I, я прошу всех пользователей посетить этот личный ресурс.

    ОтветитьУдалить
  6. В нашей стране в развитии любого человека, в котором он отчаянно нуждается, может произойти сбой. купить диплом http://diploms-web.com/ Сейчас предложений очень и очень много, но как выбрать лучшее? Как не стать жертвой недобросовестного обслуживания и ненужных осложнений? Мы рекомендуем уделять особое внимание заказу, уделять первоочередное внимание обеспечению качества и отзывам клиентов, но не самой низкой цене. Причины для покупки документа здесь: Качество мы обеспечиваем качество проделанной работы, наша компания дает возможность заказать дипломы с проводка. Наши разработки не вызывают пустых разговоров, хотя и не создают проблем.

    ОтветитьУдалить
  7. На этом сайте вы можете купить диплом http://diploms-web.com/ О среднем образовании с окончанием колледжа или колледжа в 1997, 1998, 1999, 2000, 2001, 2002 или 2003 год. Эта категория содержит образцы и изображения дипломов, см. | Более подробно где вы можете, следуя фото ниже. Наши сантехники грамотно заполнят диплом, установленный минобрнауки рф. Они заверены «мокрыми штампами» и необходимыми подписями.

    ОтветитьУдалить
  8. Вы ремонтируете квартиру? Первое, что нужно сделать, это купить уютную и надежную сантехнику. Смеситель и раковина, ванна, унитаз и душевая кабина должны работать надежно и прослужить дольше, чем остальные покупки на кухне. Эргономичность и комфорт влияют на эмоции, а иногда и на успех рабочего дня! «Nir-vana.Ru» - это федеральный сетевой рынок отличной сантехники. Наша компания сотрудничает с рядом известных брендов на выгодных условиях, поэтому мы предлагаем доступные цены. На нашем сайте представлены 1марка и акванет, эрлит и река, тичино и ниагара, брават и грохе и многие другие. Сотрудничаем уже более пары десятилетий. Большинство предметов для удобства можно получить как при отсутствии предоплаты, так и при оплате при регистрации. Второй вариант - безналичный расчет. Незаменим, когда вы хотите оформить заявку для мамы или близких, живущих в стороннем городе. Наша логистическая сеть охватывает 54 региона из 85. Доставка недорогая, после чего некоторые товары бесплатны. После небольшой прямой заявки для посетителей будет назначен персональный эксперт. Дополнительно - уникальное предложение сантехнических работ под солнцем - обмен до 12 месяцев. Это актуально, если ремонт затянулся и купленная сантехника для ванной или туалета уже не сопровождается. Товары для ванной комнаты мечты! Ванная комната - самый посещаемый стул среди вас. Здесь день начинается и заканчивается. Это источник чистоты, место уединения и среда для вдохновения. Показательно, что изящные сюжетные повороты романов агаты кристи были в теплой ванне. Опытные певцы, в том числе оперный тенор хосе каррерас, часто отрабатывают вокальные партии в сердце. К тому же нарядно и оригинально сантехника sreda-obitaniya.ru Для ванны не обязательно быть дорогой. Давайте вместе создадим ванную комнату мечты!

    ОтветитьУдалить
  9. Рано или поздно хозяева осознают, что их дача может стать полноценным жильем для комфортного и дешевого (по сравнению с городом) круглогодичного проживания. Чтобы окончательно поселиться на земле, нужна перестройка дома на даче — комплекс работ по переоборудованию (а, возможно, и достройке) жилья silikat18. С таким заданием превосходно справляются специализированные строительные компании, обладающие многосторонним опытом в проведении перестроечных работ.

    ОтветитьУдалить
  10. Бизнес - это деятельность. Все довольно просто: нет деятельности , нет бизнеса. Главное это заставить СЕБЯ вести каждый деятельность . В каких сферах вести работа это уже избирать ВАМ. То что умеете или чему желайте выучиться, сомнений направлении и хотелось двигаться. Рассмотрим вторую часть определения : "нацеленная на систематическое получение прибыли "shameless То есть окончательная цель каждого бизнеса - это получение выгоды dividend-center. Тоже очень. Есть выгода, есть бизнес, нет прибыли значит это никакой не бизнес . Это просто хобби. Возникает вопрос :"Что надо сделать, чтобы бизнес навевал периодическую прибыль" и как сего достичь? Для ответа на этот вопрос разберем бизнес по косточкам.

    ОтветитьУдалить