# Руководство &kdevelop;

2004-03-30
&kdevrelease;
Bernd
Gehrmann

    bernd@kdevelop.org

Caleb
Tennis

    caleb@aei-tech.com

Bernd
Pol

    bernd.pol@online.de

2002
Bernd Gehrmann
2002
Caleb Tennis
2004
Bernd Pol
&FDLNotice;

&kdevelop; — это интегрированная среда разработки (Integrated Development Environment, IDE), инструмент написания приложений широкого круга применения.

KDE
KDevelop
IDE
разработка
программирование

## Об этом руководстве

В руководстве описывается использование элементов среды &kdevelop; &kdevrelease; с точки зрения пользователя. Это не руководство по программированию, и не описание подробностей разработки. Здесь описывается лишь среда создания программ.

В руководстве затронуты следующие темы:

- Вкратце — Советы и подсказки — краткий перечень наиболее часто используемых команд и действий, а также краткое руководство по решению общих проблем при работе в &kdevelop;.

- Разработка программ под UNIX — обзор истории развития программных средств для UNIX, основные инструменты и почему вам не обойтись без IDE.

- Установка &kdevelop; — поскольку автоматизация сборки и установки программного обеспечения под UNIX не доведена до совершенства, такая глава продолжает быть востребованной.

- Обзор возможностей &kdevelop; — знание всех элементов, встроенных в IDE поможет вам повысить свою производительность.

- Обзор меню и панелей инструментов (в приложении) — краткое описание пунктов меню и панелей инструментов.

- Комбинации клавиш (в приложении) — список комбинаций клавиш &kdevelop;.

- Настройка &kdevelop; — поможет вам подстроить IDE под себя.

- Начало работы: &appwizard; — описание процесса создания нового приложения в &kdevelop; с помощью Мастера приложений.

- Профессиональное управление проектом — как загружать, преобразовывать старые проекты &kdevelop; в новый формат, а также импортировать другие проекты. Также обсуждается настройка параметров проекта для улучшения удобства и повышения производительности.

- Средства редактирования — всё, что вам нужно для написания исходного кода ("исходников"): начиная с редактора, поиска текста (как локально, так и в рамках всего проекта), и заканчивая включением новых файлов и классов в существующий проект.

- Обозреватели файлов — демонстрация различных средств обзора структуры вашего проекта, упрощающих доступ к файлам, с которыми вы желаете работать.

- Обозреватели классов — один из самых мощных инструментов &kdevelop;, обеспечивающий навигацию по зависимостям между классами, создание новых классов и методов.

- Документация — здесь описано как получить доступ богатой встроенной документации &kdevelop;, как создать документацию для вашего проекта, чёткое и мощное описание API (Application Progamming Interface), содержащее обзор исходных кодов вашего проекта, а также написание руководства в формате DocBook.

- Сборка и управление проектом — описание процедур создания и управления проектом, основы autoconf и automake, как создать собственные файлы make, а также использование ключей компилятора и make для тонкой подстройки вашего приложения.

- Расширенное использование менеджера проектов — обзор путей создания нескольких конфигураций сборки, обеспечения кросс-платформенности и создания встроенных систем с использованием библиотеки Qt/embedded.

- Интерфейс отладчика — использование интегрированного отладчика gdb, благодаря которому вы сможете локализовать ошибки в программе, не покидая &kdevelop;.

- Использование CVS — применение системы, без которой не обойтись ни одному проекту, особенно с несколькими разработчиками.

- Вызов внешних программ — запуск внешних утилит из среды &kdevelop;.

- Модули — обзор компонентов, формирующих &kdevelop;, которые вы можете подстроить их под свои нужды посредством загрузки необходимых модулей, как для работы в IDE, так и в рамках конкретного проекта.

## Вкратце — Советы и подсказки

В этой главе описывается начальная информация об оболочке. Кроме того, указаны советы по решению часто встречающихся проблем при работе с &kdevelop;.

Для получения более подробной информации следуйте по ссылкам, с которых начинаются советы.

Информация по этим темам:

- Внешний вид
- Проекты
- Сборка
- &automanag;
- Проблемы компиляции

### Внешний вид

- ### Уменьшить размер вкладок отображений в режиме IDEAl

  По умолчанию &kdevelop; запускаются со слишком большими полосами названий вкладок по краям рабочей области. Вы можете изменить это через пункт меню Настройка Настроить KDevelop... Интерфейс пользователя).

  Если у вас более старая версия &kdevelop;, это можно изменить вводом параметра `MDIStyle` в разделе `[UI]` файла `$KDEHOME/share/config/kdeveloprc`:

  - `MDIStyle=0`: только значки
  - `MDIStyle=1`: только текст (по умолчанию)
  - `MDIStyle=2`: значки на маленьких вкладках (обычно не используется)
  - `MDIStyle=3`: значки и текст

- ### Стиль отображения

  Если вы заметите разноцветные буквы в любом месте (на вкладках и т.д.) и &kdevelop;, похоже, использует неверный стиль отображения:

  - В `$KDEHOME/share/config/kdeveloprc` найдите строку с`Style=Checked`и удалите её. Перезапустите &kdevelop;.

  (это может случится, если вы щёлкнули в файловом менеджере на файле с расширением .ui и в &kdevelop; не загрузился KUIViewer для показа &GUI;, описанного в этом файле).

- ### Полноэкранный режим

  Для переключения в этот режим (или возврата из него), выберите пункт меню Вид Полноэкранный режим или нажмите Ctrl Shift F .

- ### Скрытие и показ меню

  Чтобы скрыть меню, выберите пункт меню Настройка Показать меню или нажмите Ctrl M . Чтобы вернуть меню, нажмите Ctrl M.

### Проекты

- ### Создание нового проекта

  Выбор пункта меню Проект Новый проект... приведёт к запуску Мастера приложений.

- ### Создание специального проекта

  Нет прямого пути для создания специального проекта (проекта, который использует внешние файлы сборки). Воспользуйтесь пунктом меню Проект Импортировать существующий проект. Не забудьте установить соответствующий тип проекта, название которого должно содержать (Custom Makefiles) в появившемся диалоге.

- ### Использование опций проекта

  После создания нового проекта не забудьте настроить его через пункт меню Проект Параметры проекта....

### Компиляция

- ### Не показывать детали в общем потоке сообщений

  Если в процессе сборки вы не можете уследить за важной информацией, отображаемой в окне вывода, уменьшите объём показываемой информации правым щелчком в окне сообщений.

### &automanag;

- ### Создание нового проекта

  Выберите подпроект в верхней части окна &automanag; и в контекстном меню группы (в нижней части окна), в которую нужно добавить файлы, выберите Создать файл....

- ### Добавление существующих файлов в проект

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

- ### Удаление файла из проекта

  Выберите подпроект в верхней части окна &automanag;, вызовите контекстное меню групп в нижней части и выберите Удалить.

### Ошибки компиляции/сборки

- ### Проект не собирается после переключения в/из цели по умолчанию

  Это проблема с механизмом &automake;/&autoconf;. Если подменю Проект Конфигурация сборкисодержит три пункта:default, optimized и debug, переключитесь на default или на debug/optimized.

  - Если вы выбрали default, сборка debug/optimzed производиться не будет.

  - Если вы выбрали debug/optimzed, сборка default производиться не будет.

- ### Ошибка Wrong `autoconf` version и т.д.

  Есть несколько сообщений об ошибке относительно устаревших версий autoconf и т.д., приводящих к неправильной работе `configure`. Запустите `autoreconf` в каталоге с файлами `configure.in`. Эта команда попытается обновить информацию о файлах Сборочной системы &GNU;. Для подробностей см. `man autoreconf`.

&unixdev; &kdevelop-survey; &kdevelop-install; &setup; &applicationwizard;

## Расширенное использование менеджера проектов

### Загрузка проектов

#### Загрузка последнего проекта

(... в процессе написания ...)

#### Загрузка существующего проекта

(... в процессе написания ...)

#### Конвертация старых проектов KDevelop

&kdevelop; может открывать проекты KDevelop 2.x и конвертировать их в новый формат. Для этого откройте проект, выбрав фильтр Проекты KDevelop 2. После этого проект автоматически конвертируется в новый формат.

#### Импорт существующего проекта

Чтобы импортировать существующий каталог в &kdevelop;, выберите Импорт существующего каталога в меню Проект:

##### Диалог импорта каталога

### Параметры проекта

(... в процессе написания ...)

## Средства редактирования

### Заготовки кода

#### Обзор возможностей

- SnippetPart добавляет новое отображение справа

- Добавление, изменение и удаление заготовок доступно через контекстное меню

- Двойной щелчок по заготовке вставит её в текущую позицию курсора

- Содержание заготовок отображается в подсказках

- Заготовки кода хранятся в домашнем каталоге пользователя, поэтому каждый пользователь может иметь свой набор заготовок.

- Они могут содержать переменные в виде $VARNAME$. Перед использованием заготовок с переменными, будет предложено ввести их значение

### Комбинации клавиш

Далее следует список стандартных комбинаций клавиш редактора.

Стрелка влево | Переместиться на один символ влево
Стрелка вправо | Переместиться на один символ вправо
Ctrl Стрелка влево | Переместиться на одно слово влево
Ctrl Стрелка вправо | Переместиться на одно слово вправо
Стрелка вверх | Переместиться на одну строку вверх
Стрелка вниз | Переместиться на одну строку вниз
PgUp | Переместиться на одну страницу вверх
PgDn | Переместиться на одну страницу вниз
Ctrl PgUp | Переместиться в начало файла
Ctrl PgDn | Переместиться в конец файла
Home | Переместиться в начало строки
End | Переместиться в конец строки

Если к приведённым выше комбинациям клавиш добавить Shift, при перемещении курсора будет также выделяться текст, через который курсор проходит при перемещении.

Backspace | Удалить один символ слева
Delete | Удалить один символ справа (под курсором)
Ctrl C | Копировать выделенный текст в буфер обмена
Ctrl V | Вставить выделенный текст из буфера обмена
Ctrl X | Копировать выделенный текст в буфер обмена и затем удалить его
Ctrl Z | Отменить последнее действие
Shift Ctrl Z | Повторить последнее отменённое действие

### Отчёт об ошибках

(... в процессе написания ...)

### Поиск в текущем документе и файлах

#### Поиск текста

CtrlF — найти CtrlR — найти и заменить

#### ISearch

Традиционный поиск через Правка Найти требует указания искомого отрывка текста полностью. Однако значительно быстрее искать текст поиском по мере набора: нажмите кнопку ISearch на панели инструментов и начинайте вводить искомый текст. По мере того, как вы будете вводить новые буквы, каждый раз будет выполняться поиск набираемого слова. Обычно искомое место в документе находится уже после ввода 3-4 букв.

#### Grep

Оба описанных выше поиска ограничены текущим файлом. Для поиска сразу в нескольких файлах, воспользуйтесь пунктом Поиск в файлах... меню Правка. При этом будет вызван графический интерфейс к команде &grep;(1).

Здесь вы можете выбрать маску файлов, в которых будет производиться поиск, и другие средства по уменьшению количества сканируемых файлов. Кроме того, в этом диалоге вы можете указать каталог для поиска. Если вы включите флажок Рекурсивно, поиск продолжится и во всех вложенных каталогах.

Обычно условие поиска представляет собой регулярное выражение с синтаксисом стандарта POSIX. Например, вы можете использовать условие `"\<K.*"` если хотите найти все слова, начинающиеся с буквы K. Следующие символы являются служебными:

`.` | Любой символ
`^` | Начало строки
`$` | Конец строки
`\<` | Начало слова
`\>` | Конец слова
`?` | Ничего или один предшествующий элемент
`*` | Ноль или больше раз предшествующего элемента
`+` | Один или больше раз предшествующего элемента
`{n}` | Предшествующий элемент присутствует ровно n раз
`{n,}` | Предшествующий элемент присутствует n или более раз
`{,n}` | Предшествующий элемент присутствует менее n раз
`{n,m}` | Предшествующий элемент присутствует больше `n` но меньше `m` раз

Обратное отношение к подвыражениям в скобках также доступно через нотацию `\n`.

Для программирующих на C++ есть специфические шаблоны. Например, для поиска всех вызовов всех элементарных функций определённого объекта.

После запуска поиска, но будет производится внешним, асинхронным процессом. Все найденные элементы будут отображены в виде Grep. Чтобы перейти к просмотру файла, щёлкните на нём. Помните, что файлы сортируются по их физическому расположению. Если найденный файл уже открыт в редакторе (и изменён), могут быть несоответствия в номерах строки. Для предотвращения этого сохраняйте все файлы перед поиском.

### Завершение кода

(... в процессе написания ...)

### Создание новых файлов и классов

(... в процессе написания ...)

#### Изменение шаблонов

(... в процессе написания ...)

## Обзор файлов

В левой части главного окна &kdevelop; могут отображаться разнообразные списки и структуры файлов:

- ### Дерево файлов

  Наглядное отображение иерархии файлов проекта. При щелчке на файле он будет открыт в редакторе. Не-текстовые файлы открываются в приложениях, сопоставленных с их MIME-типом.

  Дерево файлов обновляется при каждом изменении файловой системы (в пределах каталога проекта). Например, если вы создадите новый файл или каталог (программой отличной от &kdevelop;), это отразится на списке. На операционных системах, отличных от Linux, или на файловой системе NFS, каталоги обновляются через некоторые промежутки времени.

  Файлы, не представляющие интереса, не отображаются. Однако в диалоговом окне Параметры проекта-Дерево файлов вы можете изменить это указанием своих масок файлов для фильтрования (разделяя их запятыми).

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

  ### Снимок экрана дерева файлов

- ### Файловые категории

  Здесь отображаются файлы проекта, сгруппированные по расширению. При щелчке на файле он будет открыт в редакторе.

  Категории файлов, отображаемые в Дереве файлов, можно настроить в настройках проекта. Сканируя каталог, &kdevelop; ищет категорию, к которой подходит текущий файл, а найдя такую, поиск останавливается. Т.е. в конце списка должны быть категории с наиболее общими масками, а в начале — с более специфическими. Например, звёздочка должны быть в конце.

## Обзор классов

При разработке объектно-ориентированного приложения ваше внимание концентрируется не на исходных файлах, а на классах и их отношениях. Чтобы помочь вам перемещаться по определённым классам и идентификаторам, &kdevelop; предоставляет различные обозреватели классов, наглядно представляющие структуру классов разными способами.

### Обзор классов

В левой части рабочей области расположен список классов, переменных и функций вашего проекта. Они представляются в виде дерева. При щелчке на классе, отдельной его веткой отобразится список всех его методов и атрибутов.

#### Снимок экрана с обзором классов

Обзор классов может работать в двух режимах. По умолчанию, все идентификаторы сгруппированы по классам, структурам, функциям, переменным и пространствам имён. В контекстном меню вы можете выбрать сортировку по пространствам имён. В этом режиме отображается иерархия пространств имён и идентификаторы сгруппированы в соответствии пространству имён, в котором они определены. Это может быть более полезным в проектах, широко использующих пространства имён.

Через контекстное меню вы также можете изменить метод отображения имён классов, чтобы они отображались с пространством имён, в котором они определены. Это поможет различить вам одноимённые классы из разных пространств. Если вы в обычном режиме задержите мышь на имени класса, в подсказке будет отображено полное имя класса.

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

### Инструментарий классов

Диалог классов открывается по правому щелчку по классу в окне обозревателя классов и выбору пункта Классовый инструментарий....

### Иерархия классов

(... в процессе написания ...)

## Документирование

К несчастью, написание документации часто бывает сложнее написания кода. Но продуманно организованная и понятно написанная, она оказывает значительную помощь в разработке, позволяющую не обращаться лишний раз за советом на форумы, или, что ещё лучше, к автору.

Документирование имеет несколько граней. Это

- внутренняя документация проекта, состоящая в основном из

  - комментариев в исходных файлах

  - внутренняя документация API, генерируемая специальными инструментами, такими как &doxygen;

- внешняя документация проекта

  - внешняя документация API, например по функциям библиотек (KDE, Qt и т.д.)

  - другая документация (по языкам программирования, статьи HOWTO, общая системная информация)

Вся указанная документация должна быть удобна и легко доступна, когда она понадобится. &kdevelop; предлагает гибкое решение для этого.

### Обзор документации

#### Снимок экрана структуры документации

&project-management;

## Расширенное использование менеджера проектов

### Несколько конфигураций сборки

(... в процессе написания ...)

### Кросс-платформенное компилирование

Если у вас есть кросс-платформенные компиляторы, вы можете компилировать программы под процессоры и операционные системы, отличные от текущей. Коллекция компиляторов &GNU; GCC может также быть собрана с поддержкой кросс-платформенности. Для подробностей см. info-страницы GCC. Некоторые дистрибутивы Linux также предоставляют уже собранные кросс-платформенные версии компиляторов.

Пакеты, основанные на automake можно сделать кросс-платформенными указанием ключа `--host` сценарию configure и установкой переменных окружения `CC` и `CXX`. В &kdevelop; есть возможность создания нескольких конфигураций сборки. Для подробностей см. . После того, как вы создали новую конфигурацию сборки через диалог Проект Параметры проекта..., добавьте ключ

    --host=платформа

в опции configure. Платформа указывается в виде

    процессор-поставщик-ОС

или

    процессор-поставщик-ядро-ОС

Кроем, того вы можете использовать краткую форму, например i386-linux или arm-elf.

### Qt/Embedded

&qte; — это версия библиотеки &Qt;, которая не использует X Window, а прорисовывает графику напрямую на framebuffer системы Linux. Это полезно для встраиваемых систем с ограничениями по использованию памяти. API этой библиотеки полностью совместимо с библиотекой для X11.

Разработка приложения для &qte; в &kdevelop; не очень отличается от разработки под &Qt; для X11. На самом деле, вы даже можете использовать одну кодовую базу для обоих версий. Если вы используете менеджер autoproject, вы можете переключиться на версию embedded передачей ключа `--enable-embedded` скрипту configure. Это можно сделать в диалоге Проект Параметры проекта... в разделе Параметры configure. Ключом `--with-qt-dir=DIR` можно указать каталог, в котором установлен &qte;.

После конфигурации и сборки вашего приложения с этими ключами, оно будет использовать библиотеку `libqpe.so`. Его нельзя будет запустить совместно с X11. Чтобы протестировать его, запустите его из программы qvfb (Qt Virtual Frame Buffer).

    app -qws -display QVFb:0

В можете создать несколько сборочных конфигураций, как описано выше.

Приложения для &qte; обычно выполняются как отдельные команды на устройстве, для которого они сделаны. Trolltech также поддерживает Qtopia, коллекцию приложений для PIM, обзора web, и других направлений, работающих вместе. Это стандартное окружение, например, на КПК Sharp Zaurus. Вы можете писать приложения, интегрированные в это окружение, используя Qtopia SDK. Это достигается созданием основного класса вашего приложения подклассом `QPEApplication` и сборкой с подключением библиотеки `libqpe.so`. Если вы разрабатываете ваше приложение используя менеджер autoproject, вам нужно добавить ключ `--enable-qtopia` в опции configure.

## Интерфейс отладчика

Для C и C++ &kdevelop; содержит встроенный отладчик, интегрированный с редактором. Технически это реализовано как внешний интерфейс для отладчика &GNU; gdb через каналы (pipe). Отладчик можно запустить несколькими способами:

- Через пункт меню Отладка Запуск, после чего в отладчик загрузится главная программа вашего проекта.

- Через пункт меню Отладка Запуск другого Загрузить файл core загрузится core-файл, генерируемый ядром системы после сбоя программы (это может быть выключено в вашей системе, см. ulimit(1)). Эта отладка полезна для анализа сбоев программы.

- Через пункт меню Отладка Запуск другого Присоединить к процессу отладчик подстроится к уже запущенной программе. Вам нужно будет выбрать её из списка запущенных процессов.

- Помните, что отладка возможна только если программа была скомпилирована с информацией для отладки. Это можно установить в диалоге Параметры компилятора. Информация для отладки помогает найти соответствие между именами файлов, строчками и адресами в программе.

Отладчик предлагает несколько видов информации о процессе:

- ### Переменные

  Окно содержит список значений всех локальных переменных на текущей точке выполнения.

  Можно наблюдать как локальные, так и глобальные переменные. Добавить переменную можно либо нажатием кнопки Добавить, либо нажатием клавиши Enter на выбранном пункте Наблюдение. Удалить их можно через контекстное меню.

- ### Точки останова

  (... в процессе написания ...)

- ### Фреймовый стек

  (... в процессе написания ...)

- ### Дизассемблирование

  (... в процессе написания ...)

### Установка точек останова

(... в процессе написания ...)

### Параметры

#### Отобразить обработанные имена

В программе, написанной на C++, имена функций изменяются (mangled), то есть к начальному имени функции добавляется информация о типах аргументов, которые она принимает. Это необходимо для перегрузки (overload) функций. Алгоритм такой обработки не стандартизован и имеет различные реализации даже в разных версиях компилятора &GNU; C++.

В окне дизассемблирования отображаются не изменённые имена, однако это можно изменить.

#### Попробуйте установку точек останова по загрузке библиотеки

Отладчик gdb не разрешает устанавливать точки останова в коде, не загруженном в данный момент. В приложении с модульной структурой, где код загружается только по требованию (через функцию libc `dlopen(3)`). Возможность установки точек останова в библиотеках предоставляет &kdevelop;. Таким образом, точки останова ставятся в своеобразную очередь и передаются gdb только после загрузки необходимой библиотеки.

#### Включить плавающую панель

(... в процессе написания ...)

## Использование CVS

### Основы &CVS;

&CVS; — это система контроля версий, используемая большинством проектов с открытым исходным кодом, в т.ч. и &kde;. Она хранит весь исходный код в одном месте, называемом репозиторием (хранилищем). С помощью такого хранилища каждый может получить снимок исходного кода на определённый момент времени (и не обязательно на текущий). В отличии от других систем контроля версий, при работе над файлом разработчику не нужно его блокировать, что расширяет возможности параллельной разработки.

После выполнения задачи разработчик загружает (commit) изменённые файлы в хранилище (со списком изменений). &CVS; может объединять изменения в одном файле, сделанные несколькими людьми. Конечно, может случиться так, что разработчики работали над одной и той же частью файла, что приведёт к конфликту (на практике такое случается редко и является результатом недостаточного обсуждения процесса разработки). В таком случае &CVS; отказывается принять конфликтный файл и разработчику придётся устранять конфликт самостоятельно.

&CVS; может намного больше, например, вести несколько веток (branch) разработки (например &kde; 3.1.4 и &kde; 3.2 были разными ветками дерева разработки &kde;), перемещать изменения из одной ветки в другую, выводить различия между разными версиями файла, выводить историю изменений файла и т.д.

&CVS; реализован как система клиент-сервер. Со стороны пользователя связь с хранилищем идёт через консольную программу &cvs;. Однако доступно также большое количество графических интерфейсов к ней, например Cervisia () или TkCVS (). В &kdevelop; напрямую доступна лишь небольшая часть функциональности &cvs;, необходимая для каждодневной работы.

Вам потребуется знание основ использования &CVS;, в частности, вы должны знать как загружать (checkout) проект из хранилища. Мы рекомендуем прочитать книгу Open Source Development With CVS, написанную Карлом Фогелем (Karl Fogel), распространяемую бесплатно (кроме нетехнических глав). Кроме того, вы можете прочитать о &CVS; по-русски на сайте linux.org.ru

### Команды &CVS; в &kdevelop;

В обзоре файлов доступны такие пункты контекстного меню:

- #### Добавить в хранилище

  Подготавливает отмеченные файлы к передаче их в хранилище.

- #### Удалить из хранилища

  Подготавливает отмеченный файл к удалению из хранилища. При этом файл также удаляется на локальной файловой системе.

- #### Обновить

  Выполняет команду `cvs update` для объединения изменений, сделанных другими пользователями. Если вы вызываете эту команду для каталога, обновление происходит рекурсивно, если только вы не отключили это в конфигурационном файле `.cvsrc`.

- #### Передать на сервер

  Выполняет команду `cvs commit` для передачи изменений, сделанных вами в хранилище. Помните, что перед этим необходимо выполнить обновление. Иначе, если другой пользователь уже передал свои изменения до этого, может возникнуть конфликт.

Все эти команды запускаются как подпроцесс &kdevelop; без дополнительных ключей или переменных окружения. Это создаёт проблемы, например, когда вы работаете через соединение &ssh;, и вам нужно ввести пароль. Это необходимо, например, при работе с `sourceforge.net`. Работа над этой проблемой описана в FAQ CVS/SSH, который можно найти в разделе документации проекта SourceForge.

### За кулисами

#### Что &CVS; записывает в рабочем каталоге

(... в процессе написания ...)

## Запуск внешних программ

Несмотря на то, что &kdevelop; является т.н. интегрированной средой разработки, она никогда не будет содержать все возможности, которые возможно вам потребуются. В &kdevelop; есть несколько возможностей запустить внешнее приложение, подключить его к работе с файлами, или использовать внешние фильтры для обработки содержимого окна редактирования.

Наиболее общая и простая возможность — использовать меню Сервис, которое вы с лёгкостью можете настраивать. Это можно сделать через пункт меню Настройка Настроить KDevelop... Внешние инструменты.

Другие средства обсуждаются в главе .

## Благодарности

### Авторы и переводчики

- Первое издание этого руководства подготовлено Берндом Гехрманном (Bernd Gehrmann) bernd@kdevelop.org и Калебом Теннисом (Caleb Tennis) caleb@aei-tech.com.

- Главы Краткое описание &automanag; и Использование менеджера Automake написаны Йеном Вадхамом (Ian Wadham), ianw@netspace.net.au.

- Перевод руководства на русский язык осуществил Николай Шафоростов, linux@l10n.org.ua, домашняя страничка — . Замечания и дополнения приветствуются.

## Обзор меню и панелей инструментов

(... в процессе написания ...)

## Комбинации клавиш

(... в процессе написания ...)

## Подключаемый инструментарий

&kdevelop; содержит большое количество небольших инструментов, помогающих вам быстрее выполнить определённую задачу. Большинство из них реализованы в виде модулей. Это значит, что если они вам не нужны, вы можете их отключить в диалоге Параметры проекта из меню Модули (для модулей в рамках проекта) или через Настройка Настроить KDevelop.... Выключенные модули не отображаются в меню и не занимают память.

- ### Модуль `abbrev`

  Этот модуль заменяет сокращения на часто используемые части кода. Он активируется нажатием Ctrl Пробел. Например, вы ввели `"ife"` в редактор языка C++. Теперь нажмите CtrlПробел, и вы получите шаблон кода `if-else`. Набор поддерживаемых сокращений зависит от языка программирования. Например, для PHP вам вряд ли будут интересны сокращения кода для &Java;.

  Набор сокращений можно настраивать. Настройка Настроить KDevelop..., вкладка Сокращения

- ### Модуль `filter`

  Предоставляет две функции. Сервис Выполнить команду позволяет ввести команду оболочки. После нажатия на кнопке Запуск вывод команды будет помещён в буфер обмена.

  Сервис Фильтровать выделение через команду.... Для использования этого инструмента нужно выделить текст в редакторе. Если вы теперь выполните команду оболочки, то после нажатия на кнопке Запуск, выделенный текст будет передан команде через стандартный ввод. В свою очередь, стандартный вывод будет вставлен вместо выделения.

- ### Модуль &doxygen;

  Упрощает использования средства API-документирования &doxygen; (). Проект Запустить Doxygen приведёт к генерированию API-документации к текущему проекту, основываясь на конфигурационном файле `Doxyfile` в каталоге проекта.

  Более того, вы можете настроить &doxygen; через диалог Проект Параметры проекта.... Он подобен мастеру &doxywizard;.

- ### Модуль &ctags;

  Этот инструмент является расширением обозревателя классов, основанным на программе ctags, и поддерживает больше языков программирования.

  Активируйте модуль через меню Сервис CTags.... При первом запуске, вам будет предложено создать базу данных поиска. При этом в каталоге проекта будет создан файл `tags`. Это текстовый файл со списком идентификаторов исходных файлов проекта.

  В такой базе данных вы можете выполнять поиск двумя способами: если Совпадение с регулярным выражением включено, вводимый вами текст будет интерпретироваться как регулярное выражение (стандарта POSIX) и сравниваться в существующими идентификаторами. Например, текст `.*Widget` приведёт к поиску всех идентификаторов, заканчивающихся на `Widget`. Иначе, поиск будет дословным.

  При поиске будет выводиться список подходящих идентификаторов, сопровождающийся номерами строк с их объявлениями. Чтобы перейти к объявлению, щёлкните на идентификаторе.

  Для некоторых языков программирования, &ctags; распознаёт разные типы идентификаторов. например, в Python есть классы и функции, и вы можете выборочно искать отдельно либо классы, либо функции.

  База данных не обновляется каждый раз при изменении исходников. Поэтому вам нужно самостоятельно периодично обновлять её с помощью кнопки Обновить.

- ### Модуль `astyle`

  (... в процессе написания ...)

- ### Модуль `regexptest`

  Составление регулярных выражений может быть долгой работой, обычно первая попытка поиска по введённому выражению выводит много результатов. Модуль regexptest позволяет вам напрямую отслеживать изменения в регулярном выражении. он активируется через Сервис Проверить регулярное выражение....

  Вы можете выбрать синтаксис регулярного выражения. На текущий момент поддерживается стандарт POSIX, используемый командой &grep;, и расширенный стандарт POSIX, используемый в команде &egrep;.

  При вводе регулярного выражения, вам сразу будет сообщаться об ошибках в нём. Введением текста в Строка для проверки, вы можете проверить, подходит ли текст введённому вами выражению. В частности, если регулярно выражение содержит группы, такие как `([a-z])`, содержание подходящих подгрупп будет отображено в списке.

- ### Модуль `konsole`

  (... в процессе написания ...)

### Обзор

&kdevelop; содержит модули расширения (компоненты), загружаемые во время выполнения по запросу. Это экономит процессорное время и оперативную память.

Некоторые компоненты являются глобальными, т.к. они задействованы в целом по &kdevelop;. Например, часть uimode позволяет разработчику выбирать желаемый режим интерфейсов.

Кроме того есть компоненты по управлению проектом, и они предназначены для конкретного типа проекта. Например, менеджер Automakefor загружается только при открытии проекта, основанного на Automake.

В зависимости от предназначения активных (т.е. загруженных в данный момент) компонентов, они могут добавлять новые пункты меню, кнопки на панелях инструментов и т.д.

#### Компоненты &kdevelop; для управления проектом

antproject | ANT (&Java;)
autoproject | Automake
customproject | Специальный проект
trollproject | Менеджер проектов, основанный на QMake

#### Глобальные компоненты &kdevelop;

Название компонента | Описание
Мастер приложений | Мастер создания приложений
журнал |
konsole | Встроенный эмулятор терминала
Выбор редактора | Выбор встроенного редактора исходного кода
doctreeview | Обозреватель документации
openwith |
fileselector | Элемент выбора файлов
uimode | Выбор режима интерфейса
texttools | Дополнительные средства обработки текста
tipofday | Совет дня
grepview | Графический интерфейс grep
cvs | Поддержка CVS
tools |
regexptest | Тестирование регулярных выражений
abbrev | Расшифровщик сокращений
filter |
valgrind | Графический интерфейс valgrind

#### Компоненты &kdevelop; по поддержке языков программирования

cppsupport | Поддержка C/C++
fortransupport | Поддержка Fortran
javasupport | Поддержка &Java;
perlsupport | Поддержка Perl
phpsupport | Поддержка PHP
pythonsupport | Поддержка Python

#### Компоненты &kdevelop; по управлению проектами

astyle |
buglist |
classview | Обозреватель классов
ctags |
debugger | Отладчик &GNU;
diff |
distpart |
doxygen |
fileview |
javadebugger |
manager |
nedit |
outputviews |
perforce |
qeditor |
scripting |
scriptproject |
sourcenav |
svn |
visualboyadvance |
windowmenu |

## &kdevelop; в разных режимах интерфейса

### Режим IDEAl

Вернуться к обзору режимов интерфейса.

Снимок экрана

&kdevelop; в режиме IDEAl

Вернуться к обзору режимов интерфейса.

Снимок экрана

&kdevelop; в режиме IDEAl с закрытыми вкладками

Этот снимок экрана демонстрирует удобство режима IDEAl, когда доступно максимально большое рабочее пространство. Все инструменты доступны через соответствующие вкладки.

Возможно, вам потребуется некоторое время чтобы привыкнуть к значкам панели вкладок. Наведите курсор мыши на один из значков и через секунду появится подсказка. На снимке экрана отображена подсказка к вкладке Менеджера Automake.

Вернуться к обзору режимов интерфейса.

### Дочерние окна

Вернуться к обзору режимов интерфейса.

Снимок экрана

&kdevelop; в режиме Дочерние окна

Вернуться к обзору режимов интерфейса.

### Вкладки

Вернуться к обзору режимов интерфейса.

Снимок экрана

&kdevelop; в режиме Вкладки

Вернуться к обзору режимов интерфейса.

### Отдельные окна

Вернуться к обзору режимов интерфейса.

Снимок экрана

&kdevelop; в режиме Отдельные окна

Вернуться к обзору режимов интерфейса.

## Дополнительная информация

### Получение информации

(... в процессе написания ...)

### Отчёты об ошибках

(... в процессе написания ...)

### Лицензирование

&underFDL; &underGPL;

## Изменения

### Изменения, внесённые в этот документ

- 2003-01-03 — Начало Changelog

## Библиография

(... в процессе написания ...)

#### Руководство GNU Make (GNU Make Manual)

Richard M.
Stallman
Roland
McGrath

#### GNU Automake

David
MacKenzie
Tom
Tromey

#### GNU Autoconf

David
MacKenzie
Ben
Elliston

#### Использование GNU Compiler Collection

Richard M.
Stallman

#### GNU Libtool

Gordon
Matzigkeit
Alexandre
Oliva
Thomas
Tanner
Gary V.
Vaughan

#### Руководства по autoconf, automake и libtool (GNU Autoconf, Automake, and Libtool)

1st edition
October 2000
Gary V.
Vaughan
Ben
Elliston
Tom
Tromey
Ian Lance
Taylor
New Riders Publishing
ISBN 1578701902

#### Искусство программирования в среде UNIX (Advanced Programming in the UNIX(R) Environment)

1st edition
June 1992
W. Richard
Stevens
Addison-Wesley Pub Co
ISBN 0201563177

#### Мыслим в стиле C++, Том 1: Введение в стандартный C++ (Thinking in C++, Volume 1: Introduction to Standard C++)

2nd Edition
April 15, 2000
Bruce
Eckel
Prentice Hall
ISBN 0139798099

#### Разработка на основе открытого исходного кода: CVS (Open Source Development with CVS)

2nd Edition
October 12, 2001
Karl
Fogel
Moshe
Bar
The Coriolis Group
ISBN 158880173X

#### Программирование на PHP

1st edition
March 2002
Rasmus
Lerdorf
Kevin
Tatroe
O'Reilly & Associates
ISBN 1565926102

#### Программирование на Python

2nd Edition
March 2001
Mark
Lutz
O'Reilly & Associates
ISBN 0596000855

#### Объектно-ориентированное программирование на Python: инструментарий Qt (Gui Programming With Python : Using the Qt Toolkit)

Bk&Cd-r edition
January 2002
Boudewijn
Rempt
Opendocs Llc
ISBN 0970033044

#### Программирование на Perl

Книга с верблюдом (Camel book)
3rd Edition
July 2000
Larry
Wall
Tom
Christiansen
Jon
Orwant
O'Reilly & Associates
ISBN 0596000278

#### Изучаем Perl

Книга с ламой (Lama book)
3rd Edition
July 15, 2001
Randal L.
Schwartz
Tom
Phoenix
O'Reilly & Associates
ISBN 0596001320

&documentation.index;