Emacs: функция комментирования/копирования кода

Одна из самых распространенных операций при разработке кода, это наверное комментирование участка кода. Эта операция в Emacs выполняется легко, выделяем участок кода, нажимаем M-; и готово, участок кода закомментирован.

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

Для чего это? Очень просто. Предположим, мы хотим попробовать как сработают небольшие изменения в данном участке кода. Копируем код, комментируем то, что скопировали, а в копию закомментированного кода вносим наши изменения. При этом видим как исходный код, так и изменения и в течении одной секунды можем откатиться назад, к исходной версии кода.

Приведенная ниже функция и выполняет эти действия.

Собственно функция

Функция выполняет следующие действия:

  • Сохраняет выделение в kill-ring;
  • переходит к концу выделения;
  • комментирует выделенный регион;
  • вставляет две пустые строки;
  • вставляет копию текста из kill-ring;
  • вставляет две пустые строки.

Определение функции:

 1 (defun eik/comment_copy ()
 2   "Comment selected region and insert copy of it"
 3   (interactive)
 4   (kill-ring-save (mark) (point))
 5   (goto-char (point))
 6   (comment-region (mark) (point))
 7   (newline)
 8   (newline)
 9   (yank)
10   (newline)
11   (newline)
12   )

Естественно, у меня эта функция назначена на клавишу.

Установка

Установка производится как обычно, путем помещения определения функции в файл .emacs

Удачной охоты!

Опубликовано: January 8, 2011

Комментарии:


Комментировать:

Имя:

Комментарий: