Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

LinuxDoc+Emacs+Ispell-HOWTO: "Грязные" приемы Следующий Предыдущий Содержание

6. "Грязные" приемы

6.1 Вставка заголовка автоматически

Emacs позволяет вам перехватить некоторые действия на любые события (открытие файла, сохранение, запуск в новом режиме и т.п.).

Библиотека autoinsert использует это свойство: когда вы открываете новый файл в Emacs, эта библиотека вставляет, соответственно типу файла некоторый стандартный заголовок.

В нашем случае этот стандартный заголовок, может содержать объявления типа документа (LinuxDoc), заголовок самого документа, имя автора, и дату.

Я здесь опишу два способа для вставки таких заголовков. Вы можете вставить файл шаблона, который содержит вставляемую информацию, или вы можете запустить процедуру на elisp.

Вставка файла

Вы должны сначала заставить Emacs запустить auto-insert при открытии файла, затем считать библиотеку autoinsert, которая объявляет список auto-insert-alist, который необходимо изменить. Этот список определяет вставляемые заголовки для каждого типа файлов. По умолчанию, вставляемый файл должен находиться в директории ~/insert/, но можно переопределить переменную auto-insert-directory, если вы хотите поместить заголовки в другое место.

Добавьте следующие строки в ваш фал .emacs для вставки файла ~/emacs/sgml-insert.sgml при каждом открытии нового файла SGML:

      (add-hook 'find-file-hooks 'auto-insert)
      (load-library "autoinsert")
      (setq auto-insert-directory "~/emacs/")
      (setq auto-insert-alist
            (append '((sgml-mode .  "sgml-insert.sgml"))
                    auto-insert-alist))
      

Затем вы можете написать файл ~/emacs/sgml-insert.sgml тот заголовок, который вам необходим, затем перезапустить Emacs и открыть какой-нибудь новый файл (например foobar.sgml). Emacs должен спросить у вас подтверждение автоматической вставки заголовка, и если вы ответите утвердительно, то он вставит заголовок.

Запуск программы

Этот метод работает почти как предыдущий, но вместо установки указателя auto-insert-alist на вставляемый файл, вам необходимо указать какую процедуру надо выполнить. Теперь как это работает, допуская, что вы хотите записать эту функцию в файл, названный ~/emacs/sgml-header.el. (нет необходимости перегружать ваш файл .emacs такими функциями, поскольку они могут долго не использоваться):

      (add-hook 'find-file-hooks 'auto-insert)
      (load-library "autoinsert")
      (add-to-list 'load-path "~/emacs")
      (load-library "sgml-header")
      (setq auto-insert-alist
            (append '(((sgml-mode .  "SGML Mode") . insert-sgml-header))
                    auto-insert-alist))
      

Вы найдете в разделе appendix пример функции insert-sgml-header.


Следующий Предыдущий Содержание

  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте