Как выполнить функцию при запуске в Emacs

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

(defun space12 ()
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (while (re-search-forward "\\. \\([^ ]\\)" nil t)
      (replace-match ".  \\1" t))))

Это преобразует ". " в ". " без увеличения пространства существующих двух вхождений пространства.

Как это может быть сделано. Я думал о добавлении (space12) в init.el, но он, кажется, загружается до загрузки документа.

Пример ввода:

This is for test. This is second line with only one space at start.  This is third line which already has 2 spaces before it. End of document.

1 ответ

Решение

Попробуйте добавить это в свой init.el:

(add-hook 'find-file-hook 'space12)

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

Другие вопросы по тегам