LE Blog

Инженер с поэтической душой

24.06.2020 firtree_right Следи за руками

switcher koziavki

Умением печатать не глядя на клавиатуру я так и не овладел. Украденная у Владимира Владимировича Шахиджаняна программа «СОЛО на клавиатуре» меня не брала. Да и сам Владимир Владимирович, стоявший одно время в метро с компакт-дисками этой программы, мотивации не добавлял. Как знают все, кто не умеет печтать вслепую, это приводит к тому, что ты напечатал уже целый абзац, а раскладку переключить забыл. Потом всех, конечно, спасла волшебная программа «Пунто Свитчер». Но мне она всегда казалась с одной стороны подозрительно умной, а с другой — периодически срабатывала невпопад. Поэтому я ей не пользовался и со временем даже забыл, что она есть. Но тут субботним вечером, занимаясь практически парным практически программированием практически с незнакомцем, вспомнил. И решил написать воркфлоу для «Альфреда», который я купил и преступно мало использую. В отличие от «Пунты» времён нулевых он переключает только выделенный текст. Лихое было время, конечно, программы запросто перехватывали ввод-вывод друг у друга.

Сделан воркфлоу довольно просто. В основе вот такой скрипт:

#!/bin/zsh

query=$1

if [[ $query =~ [a-zA-Z] ]]
then
    result=$(echo $query | sed "y_@#^&qwertyuiop\[\]asdfghjkl;'zxcvbnm,./QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?_\"№:?йцукенгшщз\х\ъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,_")
else
    result=$(echo $query | sed "y_\"№:?йцукенгшщз\х\ъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,_@#^&qwertyuiop\[\]asdfghjkl;'zxcvbnm,./QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?_")
fi

echo -n $result

И оболочка из горячих клавиш, обрабатываемых «Альфредом», которые этот скрипт кормят и вставляют результат обратно. Alfred workfow в моём гитхабе. Со временем буду добавлять туда то, что сам использую.

11.03.2009 firtree_right Использование GEdit для разработки на Ruby и Flex

Сегодня я хочу поделиться своими ресурсами для разработки. В частности, хочу рассказать про IDE. Основную часть рабочего времени я провожу под кубунту. После долгих метаний и проб я остановился на GEdit, как на универсальном средстве разработки.

Установка

Для работы нам понадобятся плагины для GEdit. Они содержат основной набор вкусностей: code snippets, file browser pane, terminal pane и тому подобное. Поэтому устанавливаем:

sudo apt-get install gedit gedit-plugins

Дополнительные файлы, которые понадобятся, находятся в теле поста.

Ruby и Ruby on Rails

Подсветка синтаксиса и сниппеты для ruby уже поставляются из коробки. Единственное, если вы откроете файл со спецификацией подсветки синтаксиса для ruby, то обнаружите там пометку FIXME, касающуюся подсветки интерполяции внутри строки. Это связано с особенностями обработки правил подсветки самим редактором. Эти особенности удалось обойти, присвоив этому правилу измененный цвет фона.

Подсветку синтаксиса Ruby положить в /usr/share/gtksourceview-2.0/language-specs/ Для корректной работы подсветки, потребуется определить стиль для ruby:interpolation. Я использую тему darkmate, в которой определил необходимые дополнительные цвета на свой вкус. Положить следует в /usr/share/gtksourceview-2.0/styles/, а затем выбрать эту тему в установках редактора.

Язык для описания подсветки синтаксиса достаточно прост. Кроме всего прочего он позволяет ссылаться из правил одного языка на правила другого. Что, собственно, нам и понадобится для подсветки языка темплейтов erb. Ведь erb — это по сути html со вставками ruby. Теперь, когда у нас есть оба описания, берём описание для html и вставляем в него ссылку на ruby.

Так же следует определить mime-type для erb. Правила подсветки erb предполагают, что в системе определен mime-type text/erb. В четвертом KDE описать свои типы файлов можно в System->System Settings->Advanced->File Associacions

Мой файл использует цвет erb:background, который так же определен в файле с темой.

Подсмотрев code snippets для других языков, а так же в процессе использования, вполне можно самостоятельно написать пару-тройку полезных выражений.

Flash и Flex

Для работы с flex нам понадобится flex sdk, а так же отладочная версия standalone flash player. Я уж не буду вдаваться в подробности, как там написать компилирующий или запускающий скрипт. А выложу сразу подсветку синтаксиса.

Если определить тип (mime-type) text/x-shockwave, то можно использовать правила для подсветки ActionScript3. Которые следует положить по адресу, указаному выше.

Так же, используя описанное выше знание, легко создать описание подсветки синтаксиса mxml, зная, что это xml, со вставками actionscript. Для корректной работы следует определить mime-type text/mxml.

Заключение

Все файлы, выложенные в посте, можно смело изменять под свои нужды. Если вы используете GEdit, чтобы писать под рельсы или флекс. Я не стал выкладывать сниппеты, потому что на мой взгляд, это вопрос личной привычки. А подсветку синтаксиса, конечно, можно улучшать.