Emacs для начинающих

Копирование элементов


Существуют два способа копирования элементов со всеми подэлементами. Первый способ - это использовать описанные выше комбинации клавиш, чтобы удалить элемент со всеми вложенными элементами и тут же его вставить. Другой способ предусматривает копирование элемента в буфер обмена без удаления. Чтобы проделать это, нужно выполнить следующие шаги:

  1. Нажмите C-M-u (команда sgml-backward-up-element), чтобы переместить курсор в начало копируемого элемента. При этом, если курсор первоначально находился внутри вложенного элемента, то потребуется нажать упомяную комбинацию клавиш еще раз. Процедуру повторять до тех пор, пока курсор не окажется в начале интересующего элемента.
  2. Нажмите C-@ или C-пробел, чтобы обозначить начало выделяемой области.
  3. Нажмите C-M-u (команда sgml-forward-element) для перемещения курсора в конец копируемого элемента.
  4. Нажмите M-w (команда kill-ring-save), чтобы скопировать элемент в буфер обмена (kill ring).

Чтобы ускорить процедуру копирования элемента в буфер обмена, можно оформить описанную выше процедуру в виде макроса в файле .emacs. Запуск этого макроса пускай будет осуществляться комбинацией клавиш C-c w. Текст макроса, копирующего текущий элемент в буфер обмена выглядит следующим образом:

(defun sgml-copy-element () (interactive) (sgml-backward-up-element) (let ((start (point))) (sgml-forward-element) (kill-ring-save start (point))))

; assign to ^Cw keystroke (define-key global-map "^Cw" sgml-copy-element)



Содержание раздела