Калькулятор в текстовом редакторе Geany

Еще Джеф Раскин писал про необходимость встраивания калькулятора прямо в текстовый редактор. Выделил выражение, которое требуется посчитать, нажал на определенную кнопку, и вместо выражения вставляется результат вычисления.

И вот я решил такое сделать в текстовом редакторе Geany, с которого никак не могу перейти на Emacs, не получается реализовать в последнем некоторые функции, к которым очень уж привык. Сделать в Geany такую возможность можно либо через плагин, который я не нашел сходу, либо через внешнюю команду, благо что для этого есть встроенная функция Правка -> Форматирование -> Отправить выделенное в, где можно прописать внешние команды, которые будут на вход принимать выделенное выражение, и вставлять в текст результат работы.

Сначала решил воспользоваться калькулятором bc, но не тут то было, он не очень то приспособлен для работы с командной строкой совместно с другими программами, имеет свой довольно запутанный интерфейс, да и вообще мне не нравится как он считает, к примеру не умеет считать дробные степени (или я не разобрался как это делается в нем). Попытка сделать для него скрипт вида echo «$*» | bc привело к полному зависанию компьютера, но это видимо особенности процессора AMD в моем ноутбуке, снес от греха подальше этот bc, столько уже кровушки он у меня выпил, а толку от него нет.

Следующим кандидатом для калькулятора был выбрал calc (пакет apcalc), но и его не получилось заставить работать совместно с Geany, ну никак не хочет принимать на вход данные, вываливает ошибку: «Unable to associate stdin with /dev/tty».

Наконец в репозитории Ubuntu был найден отлично работающий калькулятор — wcalc, который запускается командой wcalc -q (параметр -q нужен для того, чтобы не выдавал символ = перед результатом вычислений).

Так что теперь могу считать прямо в текстовом редакторе, пишешь выражение (2+2*2+3)^(1/2), выделяешь его, нажимаешь Ctrl+1, и на место выделенного вставляется 3. Единственный минус, это то, что вставляется лишний перенос строки после выражения, но с этим недостатком вполне можно мириться.

Сам калькулятор wcalc довольно мощный, имеется множество функций, математических и физических констант, это довольно мощный инженерный калькулятор, умеющий к тому же работать и с разными системами счисления, что очень полезно для программиста. К примеру, можно очень легко делать преобразования из разных счислем счисления (двоичная, восьмиричная и шестнадцатиричная): 0xff -> 255, 077 -> 63, если же нужно вывести в шестнадцатиричной системе, то для этого можно прописать команду wcalc -q -h, и вызывать ее клавиатурным сочетанием Ctrl+2.

02 ноября 2012

linux geany useful