|
Пометка и областьСуществует множество команд Emacs, которые работают с произвольной непрерывной частью текущего буфера. Чтобы задать текст, над которым работают такие команды, вы устанавливаете метку в одном конце этого текста, и передвигаете точку в другой его конец. Текст, расположенный между точкой и меткой, называется областью. Если вы задействовали режим Transient Mark, Emacs выделяет область цветом (смотрите раздел Режим Transient Mark). Чтобы регулировать границы области, вы можете двигать точку или метку. Не имеет значения, которая из них установлена первой в хронологическом порядке, или какая появляется первой в тексте. Как только метка установлена, она остается до тех пор, пока не будет установлена снова в другом месте. Каждый буфер имеет свою собственную метку, таким образом, когда вы возвращаетесь в буфер, который выбирался прежде, он сохраняет ту же самую метку, что и прежде. Многие команды, которые вставляют текст, например C-y
( Помимо ограничения области, пометка также полезна для запоминания места, к которому вы, возможно, захотите вернуться. Чтобы сделать эту возможность более полезной, Emacs запоминает 16 предыдущих позиций метки в списке пометок. Установка меткиЗдесь приводятся некоторые команды для установки метки:
Например, если вы хотите преобразовать часть буфера так, чтобы он весь был
набран прописными буквами, вы можете использовать команду C-x C-u
( Наиболее общий способ установки метки
-- делать это с помощью команды C-SPC
( Есть два способа установить метку с помощью мыши. Вы можете провести мышью с нажатой первой кнопкой по отрезку текста; это поместит точку там, где вы отпустили кнопку мыши, и установит метку на другом конце этого отрезка. Или вы можете щёлкнуть третьей кнопкой мыши, что устанавливает метку в точке (как C-SPC) и затем перемещает точку (как Mouse-1). Оба этих способа помимо установки метки копируют область в список уничтожений; такое поведение соответствует поведению других оконных приложений, но если вы не хотите изменять список уничтожений, вы должны использовать для установки метки команды клавиатуры. Смотрите раздел Команды мыши для редактирования. На обычных терминалах есть только один
курсор, так что Emacs не может показать вам местонахождение метки. Вы должны его
помнить. Обычный выход из ситуации -- установить метку, а затем быстро её использовать до того, как вы забудете, где она расположена. Но вы можете увидеть
позицию метки с помощью команды C-x C-x
( C-x C-x также полезна, когда вы удовлетворены положением точки, но хотите передвинуть другой конец области (где находится метка); сделайте C-x C-x для того, чтобы установить точку на место метки, и затем вы можете двигать метку. Используя C-x C-x во второй раз, если это необходимо, вы установите метку в новой позиции, а точку вернете в её прежнюю позицию. В ASCII не существует знака C-SPC;
когда вы набираете SPC, удерживая CTRL в нажатом
положении, на большинстве обычных терминалов вы получите знак C-@.
Это и есть ключ, фактически привязанный к Режим Transient MarkEmacs может подсвечивать текущую область, используя X Windows. Но обычно он этого не делает. Почему? Подсветка области обычно не работает в Emacs хорошо, потому что как только вы поставили метку, всегда есть область (в этом буфере). А постоянная подсветка области раздражала бы. Вы можете включить подсветку помеченной области, задействовав режим Transient Mark. Это более жёсткий режим действий, в котором область "существует" только временно, так что вы должны задавать область для каждой команды, которая её использует. В режиме Transient Mark большую часть времени области нет; таким образом, подсветка области, когда она существует, удобна. Чтобы включить режим Transient Mark, наберите команду M-x transient-mark-mode. Эта команда переключает данный режим, а значит вы можете повторить её для выключения этого режима. Вот подробности о режиме Transient Mark:
Для подсветки области используется начертание Когда несколько окон показывают один и тот же буфер, они
имеют разные области, потому что у них могут быть разные значения точки (хотя
все они имеют одинаковую позицию метки.) Обычно только выбранное окно
подсвечивает область (смотрите раздел Множество
окон). Однако, если переменная Когда режим Transient Mark не включён, каждая команда, устанавливающая метку, также и активизирует её, но ничто не деактивизирует метку. Если в режиме Transient Mark переменная
Режим Transient Mark также известен как "режим Zmacs", потому что редактор Zmacs на MIT Lisp Machine обращался с пометкой похожим образом. Работа с областьюКак только вы создали область, и метка активна, вы можете делать различные вещи с текстом этой области:
Большинство команд, которые оперируют с текстом в области, в своём имени
содержат слово Команды для пометки текстуальных объектовЗдесь представлены команды для помещения точки и метки вокруг текстуальных объектов, таких как слово, список, абзац или страница.
M-@ ( Другие команды устанавливают как метку,
так и точку, чтобы ограничить объект в буфере. Например, M-h
( C-M-h ( Наконец, C-x h ( В режиме Transient Mark все эти команды активизируют метку. Список пометокПомимо ограничения области, пометка служит также для запоминания места, в которое вы хотели бы вернуться. Чтобы сделать эту возможность более полезной, Emacs запоминает 16 предыдущих позиций метки в списке пометок. Большинство команд, которые устанавливают метку, вставляют старую метку в этот список. Чтобы вернуться к отмеченной позиции, используют C-u C-SPC (или C-u C-@), это команда set-mark-command, которой дан числовой аргумент. Она передвигает точку туда, где была пометка, и восстанавливает метку из списка прежних пометок. Так, повторное использование этой команды передвигает точку ко всем старым пометкам в списке, к одной за другой. Метки, через которые вы проходите, попадают в конец списка, таким образом ни одна из них не пропадает. Каждый буфер имеет свой собственный список пометок. Все команды редактирования используют список пометок текущего буфера. В частности, C-u C-SPC всегда остается в том же самом буфере. Многие команды, передвигающие на большие расстояния, как например
M-< ( Если вы хотите возвращаться к одному и тому же месту снова и снова, список пометок может оказаться недостаточно удобным. В таком случае вы можете записать позицию в регистр для последующего получения (смотрите раздел Запись позиций в регистры). Переменная Переменная Глобальный список пометокКроме обычного списка пометок, который принадлежит каждому буферу, в Emacs есть единый глобальный список пометок. В нём записывается последовательность буферов, в которых вы недавно устанавливали метки, чтобы вы могли вернуться к этим буферам. При установке метки всегда создаётся вхождение в списке пометок текущего буфера. Если вы переключали буферы после предыдущей установки метки, позиция новой метки вносится также и в глобальный список пометок. В результате глобальный список пометок хранит последовательность буферов, в которых вы побывали, и место в каждом из них, где вы поставили метку. Команда C-x C-SPC
( Назад | Вперед | Содержание |
|
Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения. Идея и реализация: © Владимир Довыденков и Анатолий Камынин, 2004-2024 |
Социальные сети