Вы у своего терминала, печатаете, занимаетесь своими делами — возможно, вы находитесь в vim. Вы сохраняете файл и выходите из :wq
. Вы запускаете свою программу — она опять не сработала. Или, может быть, вы используете приложение командной строки, которым раньше не пользовались, и неправильно задали другой параметр — оно не сработало. Снова.
Я не знаю, сталкиваетесь ли вы с такими вещами постоянно, как я, но у меня бывает много подходящих ситуаций, когда мне нужен флип-стол просто для того, чтобы правильно выразить свои эмоции: [ ╯ ' □']╯︵ ┻━┻ )
Долгое время я просто хотел, чтобы в моей командной строке было больше переворачивающихся таблиц. Я предполагал, что навсегда останусь рабом google'n своих перекидных столов, когда они мне понадобятся.
Но однажды я узнал кое-что. Эти конкретные вещи — ну, я полагаю, вещь — но в любом случае: я узнал о $PROMPT_COMMAND
в bash. Эта переменная замечательна — и на самом деле, на мой взгляд, чрезвычайно эффективна как средство для выражения в командной строке, будучи очень простой переменной, которая просто выполняется как команда перед печатью основного приглашения, $PS1
. Это его основная функциональность.
Несмотря на простоту, в нем было много интересных возможностей для забавных вещей. В то время как большинство людей заинтересованы в настройке своей оболочки bash с помощью крутых $PS1
хаков, у меня открылся новый путь, чтобы иметь возможность делать все, о чем я мог мечтать. Потому что, видите ли, $PS1
не очень приятно — ну…
Это замечательно и имеет множество функций, которыми я раньше пользовался. Но он потерял меня в тот момент, когда начал драться со мной, передавая свой вывод в лолкэт. Я хотел радуги.
Из-за этого, например, я не мог легко реализовать радугу для своего $PS1
! Я хотела радуги! Нет. Они мне нужны. И это долгое время было для меня настоящей пародией.
Да, я знаю, что делать это с вашим $PS1
не особенно практично и даже не очень функционально. Но, черт возьми, это круто выглядит, когда работает! Когда я узнал о $PROMPT_COMMAND
, у меня наконец-то появилось то, что сработало!
Долгое время я устанавливал эту маленькую волшебную функцию под названием Flip_Table
:
Эта функция выполняла одну простую проверку, чтобы определить, оправдана ли переворачиваемая таблица; и это было сделано путем проверки статуса выхода предыдущей команды, чтобы проверить, не равен ли он нулю.
Ненулевой статус выхода обычно означает, по большей части, что что-то пошло не так. Статус выхода, равный нулю, должен — но не всегда, потому что программисты — обычно должен быть хорошим и не гарантирует реакцию переворачивающегося стола.
В противном случае, когда эта функция не переворачивает таблицы, она отображает своего рода псевдо $PS1
, который создается с помощью небольшой эхо-строки, переданной в лолкэт. Результат довольно элегантный:
Постепенно моя жажда моих флип-столов начала расти — практически неконтролируемая. Я думал, что одного перекидного стола просто недостаточно. Просто. Мне нужно было пойти дальше. Сложно. Но просто.
Итак, я пошел работать над созданием рубинового драгоценного камня, чтобы сделать именно это.
В результате — я не устану от этого — есть приложения командной строки, которые не только поддерживают переворачиваемые таблицы, но и поддерживают таблицы ввода! Двойной удар!
Кроме того, его можно настроить с помощью простых файлов конфигурации YAML; и обеспечивает радужную поддержку из коробки. Правда, без коробки, как ни странно. Итак, мне больше не нужно передавать свои флип-таблицы в лолкот. Я могу просто вызвать свое приложение командной строки, чтобы все обработать за меня. Помимо этих вещей, в нем по умолчанию есть несколько крутых таблиц переворота/пути, чтобы держать вещи свежими, когда что-то пойдет не так. И они делают.
Установка
Установить flipr очень просто, если у вас установлен ruby, так как это гем:
$ (sudo) gem install flipr
Начните Flip’n Flipping с Flipr!
После установки flipr у вас должен быть доступ к команде flipr
, которая по умолчанию должна открывать меню справки без каких-либо флагов:
$ flipr
Теперь мы можем получить переворачиваемые таблицы с опцией -f
:
$ flipr -f
И наоборот, поместите таблицы с опцией -p
:
Поскольку у меня есть запеченная опция -l
для радуги, теперь я могу изменить $PROMPT_COMMAND
, о котором мы говорили ранее, чтобы она выглядела следующим образом:
Это делает флип-таблицы гораздо более захватывающими из командной строки!
Резюме
Мне очень понравилось работать над этим проектом. Первоначально флипр не был жемчужиной, но я рад, что теперь он им стал; и это один из моих любимых проектов на сегодняшний день, если честно. Вы можете найти код на GitHub. Надеюсь, вы найдете это маленькое приложение столь же полезным, как и я, или, по крайней мере, сможете найти другие полезные/забавные вещи, которые можно сделать с помощью the$PROMPT_COMMAND