Кейт выдает отладочные сообщения на консоль, с которой она запускается
Я новичок в Linux. Я использую Ubuntu 11.04. Всякий раз, когда я открываю файл с kate из командной строки, с помощью 'kate &' (или без амперсанда), Kate начинает давать сообщения на консоли. Он постоянно выдает их, когда я сохраняю файл или закрываю его. Они выглядят как отладочные сообщения для меня (пример ниже). Я использовал менеджер пакетов Synaptic для установки Kate. Удаление и установка версии dev не произвели никаких изменений. Вскоре моя консоль становится загроможденной. Есть ли способ подавить эти сообщения? В настройках Кейт тоже ничего не было.
Спасибо,
Сообщения выглядят как
kate(13412)/kate-filetree KateFileTreeModel::handleInsert: BEGIN!
kate(13412)/kate-filetree KateFileTreeModel::handleInsert: creating a new root
kate(13412)/kate-filetree ProxyItem::ProxyItem: ProxyItem(0x1796840,0x0,-1,QObject(0x0)
....
kate(13435)/kate-filetree KateFileTreeModel::documentActivated: adding viewHistory ProxyItem(0x1eb7cf0,0x1eb6830,0,KateDocument(0x1d93ea0) , "Untitled" )
kate(13435)/kate-filetree KateFileTreeModel::updateBackgrounds: BEGIN!
kate(13435)/kate-filetree KateFileTreeModel::updateBackgrounds: END!
kate(13435)/kate-filetree KateFileTreeModel::documentActivated: END!
kate(13435)/kate-filetree KateFileTreePluginView::viewChanged: END!
X Error: BadWindow (invalid Window parameter) 3
Major opcode: 20 (X_GetProperty)
Resource id: 0x5601b42
X Error: BadWindow (invalid Window parameter) 3
Major opcode: 20 (X_GetProperty)
Resource id: 0x5601b42
2 ответа
Этот пост на форуме KDE объясняет, что он делает и как его остановить.
http://forum.kde.org/viewtopic.php?f=22&t=93955
Потому что вы не отключили отладочные сообщения.
Откройте "kdebugdialog", найдите "kate" и снимите все флажки. Теперь Кейт больше не будет с тобой разговаривать.
Сообщения отладки обычно записываются в стандартную ошибку, которая является дескриптором файла, обозначенным в консоли как 2. Вы можете перенаправить это, не влияя на вывод стандартного вывода (дескриптор файла 1), запустив ваше приложение, как это
kate 2>/dev/null
Вы можете добавить &
если ты тоже хочешь.
Число 2 здесь представляет дескриптор файла 2, >
является оператором перенаправления в оболочке, /dev/null
это устройство "черной дыры" - оно съедает все, что ему записано, поэтому оно "исчезает" (не отображается в консоли).
Вы можете зафиксировать стандартный вывод ошибок, заменив /dev/null
с именем файла. В этом случае вывод идет в файл, а не в консоль.
Если приложение записывает сообщения отладки на стандартный вывод, вы можете заменить число 2 номером 1 (см. Выше) - обратите внимание, что в этом случае обычные сообщения также будут перенаправлены.
Вы можете перенаправить как стандартный вывод, так и ошибку одновременно, самый простой способ сделать это
kate 2>&1 1>/dev/null
Здесь &1
обозначает дескриптор файла 1, где стандартная ошибка должна быть перенаправлена. Использование &
это отличить его от файла с именем 1.
Для получения дополнительной информации о перенаправлении, прочитайте руководство по вашей оболочке (например, bash)
Отключение всего стиля отладки дало мне некоторые контекстные ошибки - что раздражает. Поэтому я прибег к другому трюку (частично объясненному Аттилой:
Переместите исполняемый файл kate и замените его на скрипт:
cd /usr/bin
sudo mv kate kate_exec
sudo touch kate
sudo chmod 755 kate
sudo vim kate
В vim (или в любом другом редакторе) измените kate (теперь скрипт) на
kate_exec $@ 2> /dev/null &
Вам не нужно &
в конце концов, это мое предпочтение, поэтому я могу продолжать печатать в своем терминале - Аттила продолжает объяснять большинство этих вещей. Ключевым моментом здесь является передача всех параметров в исполняемый файл kate $@
и перенаправление stderr 2> /dev/null
,