Go to the first, previous, next, last section, table of contents.


Регистры

Регистры Emacs -- это места, куда вы можете записать текст или позиции для дальнейшего использования. Текст или прямоугольник, однажды записанный в регистр, может быть скопирован в буфер один или несколько раз; позицию, записанную в регистр, можно один или несколько раз использовать для передвижения к ней точки.

Каждый регистр имеет имя, состоящее из одиночного знака. Регистр может хранить кусок текста, позицию, прямоугольник, конфигурацию окна или имя файла, но только что-то одно из перечисленного в каждый конкретный момент. Всякий раз, когда вы сохраняете что-то в регистре, оно остается там до тех пор, пока вы не поместите в этот регистр что-то еще. Чтобы узнать, что содержит регистр r, используйте M-x view-register.

M-x view-register RET r
Выдать описание того, что содержит регистр r.

Запись позиций в регистры

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

C-x r SPC r
Записать положение точки в регистр r (point-to-register).
C-x r j r
Перейти в позицию, записанную в регистре r (jump-to-register).

Чтобы записать текущее положение точки в регистр, выберите имя r и наберите C-x r SPC r. Регистр r сохраняет записанное таким образом положение до тех пор, пока вы не запишете в этот регистр что-то другое.

Команда C-x j r передвигает точку в позицию, записанную в регистре r. Регистр не затрагивается, он продолжает хранить ту же самую позицию. Вы можете перейти в одну и ту же позицию, используя один и тот же регистр, любое число раз.

Если вы используете C-x r j для перехода к записанной позиции, но буфер, в котором она была записана, уже уничтожен, C-x r j пытается снова создать буфер, обращаясь к тому же файлу. Конечно, это работает только для буферов, которые обращались к файлам.

Запись текста в регистры

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

C-x r s r
Копировать область в регистр r (copy-to-register).
C-x r i r
Вставить текст из регистра r (insert-register).

C-x r s r записывает копию текста области в регистр с именем r. Запущенная с числовым аргументом, C-x r s r кроме того удаляет текст из буфера.

C-x r i r вставляет в буфер текст из регистра r. Обычно эта команда оставляет точку перед текстом, а метку располагает после него, но с числовым аргументом (C-u), наоборот, точку ставит после текста, а метку перед ним.

Запись прямоугольников в регистры

Регистр может содержать вместо линейного текста прямоугольник. Прямоугольники представляются в виде списка строк. See section Прямоугольники, для получения основной информации по прямоугольникам и о том, как они определяются в буфере.

C-x r r r
Копирует область-прямоугольник в регистр r (copy-region-to-rectangle). С числовым аргументом еще и удаляет его.
C-x r i r
Вставляет прямоугольник, который записан в регистре r (если тот содержит прямоугольник) (insert-register).

Команда C-x r i r вставляет строку текста, если регистр содержит строку, и вставляет прямоугольник, если регистр содержит прямоугольник.

Смотрите также команду sort-columns, которую можно рассматривать как команду сортировки прямоугольника. See section Сортировка текста.

Запись конфигурации окон в регистры

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

C-x r w r
Записать состояние окон выбранного фрейма в регистр r (window-configuration-to-register).
C-x r f r
Записать состояние всех фреймов, включая все их окна, в регистр r (frame-configuration-to-register).

Используйте C-x r j r для восстановления конфигурации окон или фреймов. Это та же команда, что используется для восстановления позиции курсора. Когда вы восстанавливаете конфигурацию фреймов, все существующие фреймы, не входящие в эту конфигурацию, становятся невидимыми. Если вы вместо этого хотите удалить эти фреймы, используйте C-u C-x r j r.

Хранение чисел в регистрах

Существуют команды для записи числа в регистр, вставки его в буфер в десятичном виде и для увеличения этого числа. Эти команды могут быть полезны в макросах клавиатуры (see section Клавиатурные макросы).

C-u число C-x r n рег
Записать число в регистр рег (number-to-register).
C-u число C-x r + рег
Увеличить число в регистре рег на заданное число (increment-register).
C-x r g рег
Вставить число из регистра рег в буфер.

C-x r g -- это та же команда, что используется для вставки в буфер содержимого регистров другого типа.

Запись имен файлов в регистры

Если вы часто обращаетесь к определенным именам файлов, вам будет удобно поместить эти имена в регистры. Вот код на Лиспе, используемый для записи имени файла в регистр:

(set-register ?r '(file . имя))

Например,

(set-register ?z '(file . "/gd/gnu/emacs/19.0/src/ChangeLog"))

помещает показанное имя файла в регистр `z'.

Чтобы обратиться к файлу, чье имя находится в регистре r, наберите C-x r j r. (Это та же команда, что используется для перехода к записанной позиции или восстановления конфигурации фреймов.)

Закладки

Закладки отчасти похожи на регистры тем, что они записывают позиции, к которым вы можете перейти. В отличие от регистров, они имеют длинные имена и сохраняются автоматически от одного сеанса Emacs до другого. Шаблонное применение закладок -- запись места "где вы читали" в различных файлах.

C-x r m RET
Заложить закладку в текущем файле в позиции точки.
C-x r m закладка RET
Заложить в точке закладку с именем закладка (bookmark-set).
C-x r b закладка RET
Перейти к закладке с именем закладка (bookmark-jump).
C-x r l
Перечислить все закладки (list-bookmarks).
M-x bookmark-save
Сохранить все текущие значения закладок в файле закладок, используемом по умолчанию.

Как правило закладки используются для записи одной текущей позиции в каждом из нескольких файлов. Таким образом, команда C-x r m, устанавливающая закладку, по умолчанию использует в качестве имени закладки имя файла, к которому вы обращаетесь в данный момент. Если вы называете каждую закладку по имени файла, на который она указывает, то сможете удобно повторно обратиться к любому из этих файлов с помощью C-x r b и в то же время переместиться к позиции закладки.

Чтобы отобразить список всех ваших закладок в отдельном буфере, наберите C-x r l (list-bookmarks). Если вы переключитесь в этот буфер, вы сможете отредактировать определения закладок или дать им описания. Наберите в этом буфере C-h m для получения более подробных сведений о специальных командах редактирования в нем.

Когда вы уничтожаете Emacs, он предложит вам сохранить значения закладок в вашем файле закладок по умолчанию, `~/.emacs.bmk', если вы изменяли какие-либо из этих значений. Вы также можете сохранить закладки в любое время с помощью команды M-x bookmark-save. Команды, работающие с закладками, автоматически загружают ваш файл закладок по умолчанию. Благодаря этим сохранениям и загрузкам закладки переходят от одного сеанса Emacs к другому.

Если вы установите переменную bookmark-save-flag в значение 1, то каждая команда, устанавливающая закладку, также будет записывать ваши закладки; при этом вы не потеряете значения закладок, даже если Emacs останавливается аварийно. (Это значение, если оно является числом, говорит, сколько изменений закладок проходит между сохранениями.)

Значения позиций в закладках сохраняются вместе с окружающим контекстом, так что bookmark-jump может найти правильную позицию, даже если файл был слегка изменен. Переменная bookmark-search-size говорит, сколько знаков контекста по обе стороны от позиции закладки нужно записывать.

Вот несколько дополнительных команд для работы с закладками:

M-x bookmark-load RET имя-файла RET
Загрузить файл с именем имя-файла, содержащий список значений закладок. Вы можете использовать эту команду, как и команду bookmark-write, для работы с другими файлами закладок помимо вашего файла закладок по умолчанию.
M-x bookmark-write RET имя-файла RET
Сохранить все текущие значения закладок в файле имя-файла.
M-x bookmark-delete RET закладка RET
Удалить закладку с именем закладка.
M-x bookmark-insert-location RET закладка RET
Вставить в буфер имя файла, на который указывает закладка закладка.
M-x bookmark-insert RET закладка RET
Вставить в буфер содержимое файла, на который указывает закладка закладка.


Go to the first, previous, next, last section, table of contents.

Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости