Рефакторинг в Emacs

Я работаю над разбиением кода на файлы меньшего размера и немного его реорганизую.Рассмотрим следующий код ниже как раздел, который я хочу извлечь:

(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/") t)
(package-initialize)
(when (not package-archive-contents)
  (package-refresh-contents))

(defvar my-packages '(org magit)
  "A list of packages to ensure are installed at launch.")

(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))
  • Я хочу взять раздел выше и заменить его чем-то вроде (требуется `имя-файла)
  • Затем возьмите замененный текст и поместите его в новом файле в текущем каталоге с именем имя-файла.el
  • А затем добавьте строку в начало файла (предоставляет `имя-файла)

Было бы здорово, если бы я можно нажать на клавишу, а затем ввести имя, и это произойдет. Если есть простой способ сделать это, я хотел бы услышать возможные решения.

Изменить: Я начинаю награду, потому что думаю, что это применимо к большему количеству типов кода, чем Lisp, и я хотел бы иметь что-то более общее, что я мог бы расширить.

Я подумал о ясниппете, но не думаю, что он достаточно мощный, чтобы выполнить поставленную задачу. По сути, идеальный рабочий процесс - это пометить строки, которые нужно извлечь, заменить это соответствующей директивой require или include и отправить текст в собственный файл. В идеале одна команда и что-то, что знает тип редактируемого файла или, по крайней мере, основной режим, чтобы поведение можно было настроить, опять же yasnippet хорош для выполнения различных задач при редактировании в разных основных режимах, однако я бы понятия не имел, как это сделать сделайте это работать или оцените возможность заставить это работать.

Дайте мне знать, если вам понадобится дополнительная информация.

7
задан Devin M 24 December 2011 в 10:13
поделиться