О! Я наконец-то получил то, что давно хотел от Firefox’а — настройку горячих клавиш, в том числе на переключение вкладок!
Для этого нужно поставить 2 расширения — Keyconfig и Functions for keyconfig:
…по необходимости отключив при этом проверку совместимости расширений, для чего нужно создать boolean ключ «extensions.checkCompatibility.11.0», равный false, в about: config, где 11.0 — ваша версия Firefox. При этом если у вас например 10.0.1, то ключ будет всё равно extensions.checkCompatibility.10.0, то есть самая мелкая часть версии не учитывается.
Настроил себе переключение вкладок по клавишам 1 и 2 (назад и вперёд соответственно), как было в опере где-то 9, а Backspace сделал «назад».
Кроме того, поставил accessibility.tabfocus = 3, что означает нажатиями клавиши Tab фокусироваться только на всех элементах форм, но не на ссылках, как это по умолчанию (тоже бесило).
Насколько ж удобнее-то!
Плюс из расширений, естественно, FireBug, AdBlockPlus и Greasemonkey. Плюс FireCookie (редактор cookie для FireBug’а), плюс KDE’шный стиль «Oxygen» (есть в расширениях), плюс мой userscript для отключения Гугловских редиректов (слежки за кликами на найденные ссылки).
Ну да — настоящий Firefox’овский подход: куча расширений, в отличие от Оперы, в которой всё «искаропки». Но во-первых, все расширения качественнее, никаких оперовских багов, которые по два года никто не фиксит, а минуса, который был у 3-его Firefox’а — «субъективной» тормознутости — уже и нет!
А хром — ну побыстрее немного, но хоткеи вон вообще не настраиваются :D а памяти жрёт ничуть не меньше, чем фокс, скорее даже прилично больше.

KDevelop всё-таки имеет баги, например я нашёл полтора: баг 283356 и баг 295766.
Второй как бы не совсем баг, но если пытаться скормить в KDevelop что-то безумное типа битрикса, где пипец как много каталогов, он повисает в попытках сделать очередной inotify, на который ему говорит «хрен там» ядро, ибо по дефолту sysctl fs.inotify.max_user_watches = 8192… Я лично считаю, что он в этой ситуации не должен повисать намертво, а должен просить поднять лимит… Но в любом случае этот «полубаг» успешно обходится, собственно, поднятием лимита.
А вот первый — действительно баг — KDevelop время от времени валится на некоторых исходниках. Я поотлаживал и нашёл минимальный тест, простой PHP-код, который валит KDevelop :)
<?php $a = new A(); $a->x = 1; class A { var $x = 1; }
Смысл в том, что оно пытается делать довольно приличный статический анализ PHP-кода, и запоминает поля, определённые присваиванием. А кроме того, оно пытается предупреждать о некорректных переопределениях (ну например дважды var $x в одном классе). Но из-за этого оно раньше ругалось на переопределение, если сначала видело присваивание, а только потом определение. Это типа зафиксили в баге баг 241750, но только криво зафиксили — код почему-то подразумевает, что видит определение именно внутри метода класса, и тупо использует currentContext()->parentContext() (то есть «тело функции» → «тело класса»). Но:
Хз, может и попробую зафиксить, но не факт, что это окажется легко. То есть, в качестве быстрого хака, если хочется работать, можно просто выпилить весь блок кода, отвечающий за этот фикс, из DeclarationBuilder::declareClassMember (в kdev-php/duchain/builders/declarationbui
Ведь оказывается, есть очень уютненький и шустрый KDevelop!
Только компилить его надо из исходников — в репозиториях дебиана и убунты всех нужных плагинов нет (и вряд ли есть в других). Соответственно, качаем kdevplatform, kdevelop, quanta, kdevelop-pg-qt, kdev-php:
git clone git://anongit.kde.org/kdevplatform git clone git://anongit.kde.org/kdevelop git clone git://anongit.kde.org/quanta git clone git://anongit.kde.org/kdevelop-pg-qt git clone git://anongit.kde.org/kdev-php
Доставляем зависимости, собираем cmake’ом (mkdir build; cd build; cmake ..; make; make install) и ставим всё кроме quanta, а из quanta тем же методом собираем и ставим только плагины (как минимум plugins/executebrowser) и debuggers/xdebug (отлаживаемся, соответственно, xdebug'ом). Можно и языки (languages/css, languages/sql, languages/xml). Кстати, для KDevelop есть и другие плагины — под питон, руби и так далее.
После чего останется один нюанс — всё собранное включить! Тут фишка в том, что плагины, собранные из quanta, будут иметь X-KDevelop-Version=12 в .desktop-файлах, а собранный KDevelop будет хотеть 14. Соответственно, нужно в /usr/share/kde4/services/kdev*.desktop везде поменять 12 на 14. Ну или если к тому моменту, как вы это будете читать, оно внезапно обновится, то посмотреть в любой плагин kdevelop’а и взять нужное значение оттуда. Дальше надо дёрнуть kbuildsycoca4 (обновить кэш конфигурации системы) и всё, можно запускать KDevelop.
На крайняк, если всё-таки какой-то плагин не включится сам, можно его прописать руками в ~/.kde/share/apps/kdevelop/sessions/{…GU
Всё это, правда, всё ещё не значит, что я свой mc на IDE променяю :) если только для какого-то безумного говнокода, в котором без неё не разберёшься, типа БИТРИКСА, с которым хоть сколько-то поработать, УВЫ, в ближайшее время придётся…