вторник, 29 апреля 2014 г.

emacs. Быстрая смена символов перевода строки

Давно хотел написать для emacs несколько функций, которые бы позволили мне делать некоторые операции быстрей. Одной из таких задумок является быстрая смена символов перевода строки, коих у нас в ходу аж целых три: unix, dos и mac. При каждом вызове функция определяет используемый в данный момент вариант и устанавливает следующий из доступных. Это функция - мое первое произведение на emacs lisp )
(defun pa23-change-eol ()
  "Change EOL for current buffer."
  (interactive)
  (let (my-current-eol
        my-new-eol
        my-new-coding)
    (setq my-current-eol
          (coding-system-eol-type buffer-file-coding-system))
    (if (equal my-current-eol 2)
        (setq my-new-eol 0)
      (setq my-new-eol (1+ my-current-eol)))
    (setq my-new-coding
          (coding-system-change-eol-conversion
           buffer-file-coding-system my-new-eol))
    (set-buffer-file-coding-system my-new-coding)
    )
  )
Приведенный выше код можно поместить в свой файл .emacs и назначить на эту функцию горячую клавишу, например, F12.
(global-set-key [f12] 'change-eol)
Напомню также, что мой рабочий вариант файла .emacs можно взять здесь.

UPD: 09.05.2014

Улучшен код.

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

Отправить комментарий