Дополнительные возможности редактирования

Комментирование
Команды Закомментировать и Раскомментировать, которые доступны в меню Сервис, позволяют добавить или убрать маркеры комментариев для выделенного блока текста (или для текущей строки, если текст не выделен) при условии, что комментарии поддерживаются форматом редактируемого текста.
Правила комментирования определяются синтаксисом; таким образом, если подсветка синтаксиса не включена, то команды «Закомментировать» и «Раскомментировать» будут недоступны.
Некоторые форматы поддерживают только однострочные маркеры комментариев, другие — только многострочные, третьи — и те, и другие. Если многострочные маркеры недоступны, то комментирование блока, в котором не до конца выделена последняя строка, будет невозможным.
Предпочтение отдаётся комментированию отдельных строк однострочными маркерами, если последние допустимы синтаксисом и если такое комментирование возможно — это помогает избежать проблем со вложенными комментариями.
При удалении маркеров комментариев выделение снимается с раскомментированного текста. При удалении маркеров многострочного комментария пробелы снаружи маркеров игнорируются.
Чтобы закомментировать выделенный текст (или текущую строку), выберите пункт меню Сервис Закомментировать или воспользуйтесь соответствующей комбинацией клавиш (по умолчанию D).
Чтобы удалить маркеры комментариев, выберите пункт меню Сервис Раскомментировать или воспользуйтесь соответствующей комбинацией клавиш ( по умолчанию D).

Командная строка компонента редактирования
Компонент редактирования имеет встроенную командную строку, позволяющую производить различные действия, оставляя интерфейс минималистичным. Она представляет собой поле ввода в нижней части области редактора. Чтобы получить доступ к командной строке, выберите пункт меню Вид Командная строка или нажмите клавишу F7 (по умолчанию). Описание доступных команд приводится далее. Кроме того, в модулях могут быть доступны дополнительные команды.
Для выполнения команды введите её и нажмите клавишу Enter. На месте команды будет выведено сообщение об успешном её выполнении или об ошибке. Если командная строка была вызвана с помощью клавиши F7, она будет автоматически скрыта по прошествии нескольких секунд. Чтобы убрать сообщение и ввести новую команду, нажмите клавишу F7 ещё раз.
Чтобы получить справку, введите команду help. Для получения списка всех доступных команд введите команду help list, для просмотра справки по определённой команде — help команда.
В командной строке имеется встроенный журнал введённых команд, который позволяет использовать их повторно. Для перехода от одной команды к другой воспользуйтесь клавишами со стрелками Вверх и Вниз. При отображении команды из журнала её аргументы будут выделены, так что заменить их на другие легко.

Стандартные команды

Типы аргументов
BOOLEAN 	Используется для команд включения или отключения. Допустимые значения: on, off, true, false, 1 или 0
INTEGER 	Целое число.
STRING 	Строка, заключённая в одинарные (') кавычки (или двойные (") кавычки, если она содержит пробелы).

Параметры редактора
Эти команды предоставляются компонентом редактирования и позволяют настроить только текущие документ и представление. Удобно, если требуется установить параметры, отличные от стандартных (например, отступ).
set-tab-width INTEGER width
	Устанавливает ширину табуляции.
set-indent-width INTEGER width
	Устанавливает ширину отступа. Только при создании отступов пробелами.
set-word-wrap-column INTEGER width
	Устанавливает максимальную длину строк в случае, если включён автоматический перенос.
set-icon-border BOOLEAN enable
	Устанавливает видимость полосы отметок.
set-folding-markers BOOLEAN enable
	Устанавливает видимость маркеров сворачивания блоков кода.
set-line-numbers BOOLEAN enable
	Устанавливает видимость нумерации строк.
set-replace-tabs BOOLEAN enable
	Заменять при вводе символы табуляции на пробелы.
set-remove-trailing-space BOOLEAN enable
	Удалять пробелы в конце строки при снятии с неё курсора.
set-show-tabs BOOLEAN enable
	Представлять символы табуляции и пробельное пространство в конце строк маленькими точками.
set-show-indent BOOLEAN enable
	Представлять отступы вертикальной пунктирной линией.
set-indent-spaces BOOLEAN enable
	Вставлять заданное количество пробелов для каждого уровня отступа, вместо одного символа табуляции.
set-mixed-indent BOOLEAN enable
	Использовать для отступов как символы табуляции, так и пробелы. Это реализуется путём замены пробелов в количестве, кратном ширине символа табуляции, на последние.
Эта команда также включит расстановку отступов пробелами и установит ширину отступов, если она не указана, в половину значения tab-width (для текущего документа во время выполнения).
set-word-wrap BOOLEAN enable
	Выполнять динамический перенос строк.
set-replace-tabs-save BOOLEAN enable
	Заменять символы табуляции на пробелы при сохранении.
set-remove-trailing-space-save BOOLEAN enable
	Удалить пробелы в конце строк при сохранении.
set-indent-mode STRING name
	Выбрать режим расстановки отступов. Параметр name может иметь следующие значения: «none», «normal», «cstyle», «haskell», «lilypond», «lisp», «python», «ruby» или «xml». При указании других значений используется «none».
set-auto-ident BOOLEAN script
	Включить или отключить автоматическую расстановку отступов.
set-highlight STRING highlight
	Выбрать формат для подсветки синтаксиса (один из содержащихся в меню Сервис Подсветка). Доступно также автозавершение параметра.
reload-scripts
	Перезагрузить сценарии , которые используются , включая сценарии расстановки отступов и сценарии командной строки.
set-mode STRING mode
	Выбрать тип файла для текущего документа.
nn[oremap] STRING original STRING mapped
	Сопоставить комбинацию клавиш original комбинации mapped.

Команды редактирования
Команды, которые непосредственно изменяют текущий документ.
indent
	Подставить отступы к выделенным строкам или к текущей.
unindent
	Снять отступы с выделенных строк или с текущей.
cleanindent
	Очистить отступы в выделенных строках или в текущей в соответствии с параметрами расстановки отступов для текущего документа.
comment
	Вставить маркеры, отмечающие выделенные строки или текущую как комментарии, в соответствии с форматом текущего файла (определяется способом подсветки синтаксиса).
uncomment
	Удалить маркеры, отмечающие выделенные строки или текущую как комментарии, в соответствии с форматом текущего файла (определяется способом подсветки синтаксиса).
kill-line
	Удалить текущую строку.
replace STRING pattern STRING replacement
	Заменить текст, совпадающий с pattern, на replacement. Чтобы включить в pattern пробелы, следует заключить в двойные или одинарные кавычки и pattern, и replacement. Если аргументы не заключены в кавычки, первое слово будет принято за pattern, а остальное — за replacement. Если не указать replacement, все вхождения pattern будут удалены.
Для настройки параметров поиска следует указать соответствующие флаги после двоеточия (replace:options pattern replacement). Возможные параметры:
b 	Искать в обратном направлении.
c 	Искать от позиции курсора.
e 	Искать только в выделенном тексте.
r 	Аргумент pattern — регулярное выражение. Возможно использовать \N в replacement для получения энной подстроки найденного текста.
s 	С учётом регистра.
p 	Запрашивать у пользователя подтверждение каждой замены.
w 	Только целые слова.
date STRING format
	Вставить строку с датой/временем в указанном формате (задаётся параметром format). Если параметр не указан, используется формат yyyy-MM-dd hh:mm:ss. Доступны следующие подстановки:
d	Номер дня в месяце без ведущего нуля (1-31).
dd	Номер дня в месяце с ведущим нулём (01-31).
ddd	Сокращённое локализованное название дня недели («пн»...«вс»).
dddd	Полное локализованное название дня недели («понедельник»...«воскресенье»).
M	Номер месяца без ведущего нуля (1-12).
MM	Номер месяца с ведущим нулём (01-12).
MMMM	Полное локализованное название месяца («января»...«декабря»).
MMM	Сокращённое локализованное название месяца («янв.»...«дек.»).
yy	Год двумя цифрами (00-99).
yyyy	Год четырьмя цифрами (1752-8000).
h	Час без ведущего нуля (0...23 или 1...12, в зависимости от параметра формата часов).
hh	Час с ведущим нулём (00...23 или 01...12, в зависимости от параметра формата часов).
m	Минуты без ведущего нуля (0...59).
mm	Минуты с ведущим нулём (00...59).
s	Секунды без ведущего нуля (0...59).
ss	Секунды с ведущим нулём (00...59).
z	Миллисекунды без ведущих нулей (0...999).
zzz	Миллисекунды с ведущими нулями (000...999).
AP	Использовать 12-часовой формат часов. AP будет заменено на «AM» или «PM».
ap	Использовать 12-часовой формат часов. ap будет заменено на «am» или «pm».
char STRING identifier
	 Эта команда позволяет вставить символ по его числовому идентификатору в десятичной, восьмеричной или шестнадцатеричной системах счисления. Чтобы использовать её, откройте командную строку и наберите char [числовой_идентификатор].

Примеры использования команды char
Введите: char 234
Получите: ê
Введите: char 0x1234
Получите: ሴ
s///[ig] %s///[ig] 	 Попробуем разобраться в этих двух sed-подобных командах. Первая выполняет поиск/замену в текущей строке, вторая — во всём файле (%s///).
Команды производят поиск текста, заданного маской поиска (регулярным выражением между первой и второй наклонной чертой) и, при нахождении, замену на выражение, которое задано между второй и третьей чертой. Круглые скобки в маске поиска позволяют задать подстроки в найденном тексте, на которые возможно потом ссылаться в выражении замены. Обратная ссылка — это регулярное выражение, которое при совпадении заменяется на фактический текст и может быть использовано в шаблоне замены. Для этого необходимо поставить в нужном месте обратную черту, а за ней указать номер подстроки по порядку (\1 — для первой пары скобок, \2 — для второй и так далее).
Чтобы искать сами скобки ( или ), следует предварить их обратной чертой: \(\)
Если в самом конце указать i, поиск будет выполняться с учётом регистра, а если g — будут заменены все вхождения текста, совпадающего с регулярным выражением (иначе — только первое).

Замена текста в текущей строке
Предположим, что получено сообщение об ошибке компиляции: класс myClass, упомянутый в строке 3902, не определён.
Добравшись до строки 3902, вместо того, чтобы пытаться найти слово MyClass в тексте, возможно просто открыть диалоговое окно «Команда правки», ввести s/myclass/MyClass/i, нажать кнопку OK, сохранить файл и выполнить компиляцию — успешно и без ошибок.

Замена текста во всём файле
Предположим, что имеется файл, в котором несколько раз упомянута госпожа Иванова. Но вдруг стало известно, что она вышла замуж за господина по фамилии Петров, в связи с чем требуется заменить все упоминания о госпоже Ивановой на текст госпожа Петрова.
Вызовите командную строку и введите следующий текст: %s/госпожа Иванова/госпожа Петрова/ — и всё будет готово.

Более сложный пример
Этот пример показывает, как пользоваться обратными ссылками и классами символов (сведения о том, что это такое, доступны в документации, которая упоминается далее).
Допустим, набрана такая строка:

void MyClass::DoStringOps( String      &foo, String &bar, String *p, int  &a, int &b )

Предположим, что этот код недостаточно «красив» и решено использовать ключевое слово const с параметрами, передаваемыми по ссылке (теми, перед которыми стоит амперсанд), а также удалить лишние пробелы.
Откройте диалоговое окно «Команда правки» и введите: s/\s+(\w+)\s+(&)/ const \1 \2/g, затем нажмите кнопку OK. Символ g в конце команды указывает компилятору «пересчитывать» регулярное выражение обратной ссылки каждый раз, когда встречаются совпадения.
Вывод: void MyClass::DoStringOps( const String &foo, const String &bar, String *p, const int &a, const int &b )
Всё готово! Что было сделано? Выполнялся поиск некоторого количества пробелов (\s+), за которыми следуют один или несколько буквенных символов (\w+), за которыми находятся пробелы (\s+), после которых расположен амперсанд, и в процессе эти буквенные символы и амперсанд сохранялись для использования в операции замены. После этого совпадающие части строки были заменены следующей последовательностью: один пробел, за которым следует спецификатор const, за ним ещё один пробел, после которого ранее сохранённые символы (\1), ещё один пробел и сохранённый амперсанд (\2)
В одних случаях буквенные символы составили слово String, в других — слово int, то есть символьный класс \w с последующим знаком + определяет символьный набор произвольной длины.
sort
	Упорядочить выделенный текст или весь документ.
natsort
	Упорядочить выделенные строки или весь документ в естественном порядке.

sort в сравнении с natsort
sort(a10, a1, a2): результатом будет a1, a10, a2
natsort(a10, a1, a2): результатом будет a1, a2, a10
moveLinesDown
	Переместить выделенные строки ниже.
moveLinesUp
	Переместить выделенные строки выше.
uniq
	Удалить дубликаты строк из выделенного текста или всего документа.
rtrim
	Удалить пробелы в конце строк из выделенного текста или всего документа.
ltrim
	Удалить пробелы в начале строк из выделенного текста или всего документа.
join STRING separator
	Объединить выделенные строки или весь документ. Возможно указать параметр, который определяет разделитель, например: join ', '
rmblank
	Удалить все пробелы из выделенного текста или всего документа.
alignon
	 Эта команда выравнивает строки в выбранном блоке или всём документе по позиции, которая указана переданным в качестве аргумента регулярным выражением.
Если указать пустой шаблон, выравнивание по умолчанию будет выполняться по первому непустому символу.
Если в шаблоне есть блок захвата, для захваченного совпадения будет добавлен отступ.
Примеры:
alignon - вставит пробелы перед первым «-» в каждой строке, чтобы выровнять все дефисы по одной позиции.
alignon :\\s+(.) вставит пробелы перед первым непустым символом, стоящим после двоеточия, чтобы выровнять все такие символы по одной позиции.
unwrap
	Отключить перенос строк выделенного текста или всего документа.
each STRING script
	Вызвать указанную в качестве аргумента функцию для списка выделенных строк и заменить их возвращаемым значением этого обратного вызова.

Объединить выделенные строки
each 'function(lines){return lines.join(", ")}'
Или более краткий вариант:
each 'lines.join(", ")'
filter STRING script
	Вызвать указанную в качестве аргумента функцию для списка выделенных строк и удалить те, для которых этот обратный вызов возвращает значение false.

Удалить пустые строки
filter 'function(1){return 1.length > 0;}'
Или более краткий вариант:
filter 'line.length > 0'
map STRING script
	Вызвать указанную в качестве аргумента функцию для списка выделенных строк и заменить строку значением этого обратного вызова.

Удалить пустые строки
map 'function(line){return line.replace(/^s+/,"");}'
Или более краткий вариант:
map 'line.replace(/^s+/,"")'
duplicateLinesUp
	Дублировать выделенные строки над текущим выделенным текстом.
duplicateLinesDown
	Дублировать выделенные строки под текущим выделенным текстом.

Команды навигации
goto INT line
	Перейти к указанной строке.
grep STRING pattern
	Выполнить поиск регулярного выражения pattern в документе. Дополнительные сведения: .
find STRING pattern
	Перейти к первому вхождению, заданному параметром pattern. Последующие вхождения возможно найти с помощью пункта меню Правка Продолжить поиск (клавиша по умолчанию — F3).
Параметры команды поиска возможно настраивать с помощью добавления двоеточия и флагов после её имени (find:options pattern). Возможные параметры:
b 	Искать в обратном направлении.
c 	Искать от позиции курсора.
e 	Искать только в выделенном тексте.
r 	Аргумент pattern — регулярное выражение. Возможно использовать \N в replacement для получения энной подстроки найденного текста.
s 	С учётом регистра.
w 	Только целые слова.
ifind STRING pattern
	Поиск по мере набора. Для настройки параметров поиска следует указать один или несколько флагов после двоеточия: ifind:options pattern. Допустимые параметры:
b 	Искать в обратном направлении.
r 	Поиск по регулярному выражению.
s 	С учётом регистра.
c 	Искать от позиции курсора.

Команды базовых функций редактора (определяются приложением, в котором используется компонент редактирования)
w
	Сохранить текущий документ.
wa
	Сохранить все открытые документы.
q
	Закрыть текущий документ.
qa
	Закрыть все открытые документы.
wq
	Сохранить и закрыть текущий документ.
wqa
	Сохранить и закрыть все открытые документы.
x
	Сохранить и закрыть текущий документ только в том случае, если он был изменён.
x
	Сохранить и закрыть все открытые документы только в том случае, если они были изменены.
bp
	Перейти к предыдущему документу в списке документов.
bn
	Перейти к следующему документу в списке документов.
new
	Открыть новый документ в представлении, разделённом по горизонтали.
vnew
	Открыть новый документ в представлении, разделённом по вертикали.
e
	Обновить текущий документ, если файл этого документа на диске был изменён.
enew
	Редактировать новый документ.
print
	Открыть диалог печати текущего документа.

Использование сворачивания кода
Сворачивание кода позволяет скрывать участки документа в редакторе, упрощая просмотр больших документов. В разделение на сворачиваемые участки определяется правилами подсветки синтаксиса. Следовательно, оно доступно не для всех форматов файлов. В основном сворачивание кода доступно в режиме написания исходного кода, XML-разметки и тому подобного. Большинство способов подсветки позволяют также самостоятельно определять скрываемые области, чаще всего с помощью ключевых слов BEGIN и END.
Чтобы использовать функцию сворачивания, включите отображение полосы сворачивания блоков (пункт меню Вид Полоса сворачивания блоков), если она ещё не отображается. В этой полосе, расположенной с левой стороны документа, содержится графическое представление сворачиваемых участков. Треугольник, указывающий вниз, обозначает, что участок развёрнут. Треугольник, указывающий вправо, обозначает свёрнутый участок. Щелчок по треугольнику приведёт, соответственно, к сворачиванию или разворачиванию участка (с одновременным изменением графического представления).
Для управления состоянием сворачиваемых участков доступны три команды, смотрите справку по меню.
Состояние сворачивания сохраняется при закрытии файла, поэтому при его повторном открытии свёрнутые участки останутся таковыми. Это справедливо также и для действий обновления.
Если в использовании функции сворачивания нет необходимости, возможно отключить параметр Полоса сворачивания блоков на странице Внешний вид диалога настройки редактора.