Emacs: Convert File Line Ending ðŸ’
Here's emacs command that convert file line endings (Linux, Microsoft Windows, Mac OS 9), on current file, or marked files in dired in batch.
put this in your Emacs Init File:
(defun xah-change-file-line-ending-style (Files Style) "Change current file or `dired' marked file's newline convention. When called in lisp, Style is one of 'unix 'dos 'mac or any of accepted emacs coding system. See `list-coding-systems'. URL `http://xahlee.info/emacs/emacs/elisp_convert_line_ending.html' Created: 2016-10-16 Version: 2023-10-29" (interactive (list (if (eq major-mode 'dired-mode) (dired-get-marked-files) (list buffer-file-name)) (let ((completion-ignore-case t) (xmenu '(("Unix Linux MacOSX" . unix) ("Windows" . dos) ("MacOS9" . mac))) xstyle ) (setq xstyle (completing-read "Line ending:" xmenu nil t nil nil (caar xmenu))) (cdr (assoc xstyle xmenu))))) (mapc (lambda (x) (xah-convert-file-coding-system x Style)) Files)) (defun xah-convert-file-coding-system (Fpath CodingSystem) "Convert file's encoding. Fpath is full path to file. CodingSystem is one of 'unix 'dos 'mac or any of accepted emacs coding system. See `list-coding-systems'. If the file is already opened, it is saved after this command. URL `http://xahlee.info/emacs/emacs/elisp_convert_line_ending.html' Created: 2015-07-24 Version: 2024-09-28" (let ((xbufferOpened-p (get-file-buffer Fpath))) (if xbufferOpened-p (with-current-buffer xbufferOpened-p (if (string-equal CodingSystem buffer-file-coding-system) nil (progn (set-buffer-file-coding-system CodingSystem) (save-buffer)))) (with-temp-file Fpath (insert-file-contents Fpath) (if (string-equal CodingSystem buffer-file-coding-system) nil (set-buffer-file-coding-system CodingSystem))))))