Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная
  2. Emacs

Регистры

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

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

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

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

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

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

Чтобы записать текущее положение точки в регистр, выберите имя r и наберите C-x r SPCr. Регистр 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
Вставить в буфер содержимое файла, на который указывает закладка закладка.

Перекрёстные ссылки книги для Регистры

  • Уничтожение и перемещение текста
  • Вверх
  • Управление изображением

Book navigation

  • Содержание
  • Предисловие
  • Распространение
  • GNU GENERAL PUBLIC LICENSE
  • УНИВЕРСАЛЬНАЯ ОБЩЕСТВЕННАЯ ЛИЦЕНЗИЯ GNU
  • Введение
  • Организация экрана
  • Знаки, ключи и команды
  • Вход и выход из Emacs
  • Основные команды редактирования
  • Минибуфер
  • Запуск команд по имени
  • Справка
  • Пометка и область
  • Уничтожение и перемещение текста
  • Регистры
  • Управление изображением
  • Поиск и замена
  • Команды для исправления опечаток
  • Работа с файлами
  • Использование множества буферов
  • Множество окон
  • Фреймы и X Windows
  • Поддержка разных языков
  • Основные режимы
  • Отступы
  • Команды для естественных языков
  • Редактирование программ
  • Сборка и тестирование программ
  • Сокращения
  • Редактирование рисунков
  • Посылка почты
  • Чтение почты с помощью Rmail
  • Dired, редактор каталогов
  • Календарь и дневник
  • Разнообразные команды
  • Настройка
  • Решение частых проблем
  • Аргументы командной строки
  • Антиновости для Emacs 19
  • Emacs и MS-DOS
  • Манифест GNU
  • Глоссарий
  • Указатель ключей (клавиш)
  • Указатель команд и функций
  • Указатель переменных
  • Предметный указатель

Последние материалы

  • Утилита sensors
    20 hours ago
  • Сканер Rkhunter
    1 week 1 day ago
  • Программа resize2fs
    1 week 6 days ago
  • Аудиопроигрыватель QMMP
    2 weeks 5 days ago
  • Программа Timeshift
    3 weeks 4 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru