Удаление, перемещение и копирование элементов.
Ранее уже обсуждались возможности редактора Emacs по удалению, копированию и перемещению выделенных блоков текста. Аналогичные операцию можно выполнять с элементами SGML.
Чтобы удалить элемент SGML, можно воспользоваться стандартным способом, т.е. выделить блок от открывающего тэга до закрывающего, а затем нажать C-w. Но есть способ лучше. Команда PSGML sgml-kill-element (комбинация C-M-k) удаляет текст внутри элемента начиная с текущей позиции курсора и до закрывающего тэга. Альтернативный вызов команды из меню Modify - пункт Kill element. При использовании команды sgml-kill-element всегда следует помнить о команде отката - undo (C-_).
Если после удаления текста вторично нажать C-M-k, то в окне минибуфера появится сообщение:
No more elements in название_элемента element |
Команду sgml-kill-element можно использовать для перемещения текста. Элемент, помещенный данной командой в буфер обмена, может быть потом вставлен в нужное место командой yank (C-y).
Перед тем, как перейти к рассмотрению вопросов, связанных с копированием элементов, обратим внимание на работу двух команд: sgml-untag-element и sgml-kill-markup.
Команда sgml-untag-element (комбинация C-c -) удаляет открывающий и закрывающий тэги текущего элемента. Альтернативный вызов команды через пункт Untag Element меню Modify.
Команда sgml-kill-markup (комбинация C-c C-k или пункт Markup меню Modify) удаляет в буфер фрагмент текста, заключенного между символами "<" и ">". Эта команда полезна для удаления комментариев, которые PSGML вставляет около элементов, если переменной sgml-auto-insert-required-elements присвоено ненулевое значение.
PSGML не имеет встроенной команды для удаления текста от текущей позиции до конца элемента. Данный пробел можно восполнить, добавив следующий макрос в файл .emacs:
(defun sgml-kill-to-eoelement () ; kill to end of element (interactive) (let ((start (point))) (sgml-end-of-element) (kill-region start (point))))
; assign to ^Ck keystrokes (define-key global-map "^Ck" sgml-kill-to-eoelement) |