Convert multiple line into one big string in Emacs
multiple line into one big string in Emacs :emacs:en:elisp:
This command converts selected region in Emacs into one string and put it into the kill ring.
In certain situation, this method actually makes code more readable.
Here is code you can paste into your .emacs:
(defun strip-convert-lines-into-one-big-string (beg end) "strip and convert selected lines into one big string which is copied into kill ring. When transient-mark-mode is enabled, if no region is active then only the current line is acted upon. If the region begins or ends in the middle of a line, that entire line is copied, even if the region is narrowed to the middle of a line. Current position is preserved." (interactive "r") (let (str (orig-pos (point-marker))) (save-restriction (widen) (when (and transient-mark-mode (not (use-region-p))) (setq beg (line-beginning-position) end (line-beginning-position 2))) (goto-char beg) (setq beg (line-beginning-position)) (goto-char end) (unless (= (point) (line-beginning-position)) (setq end (line-beginning-position 2))) (goto-char beg) (setq str (replace-regexp-in-string "[ \t]*\n" "" (replace-regexp-in-string "^[ \t]+" "" (buffer-substring-no-properties beg end)))) ;; (message "str=%s" str) (kill-new str) (goto-char orig-pos))) ) (global-set-key (kbd "C-c C-y") 'strip-convert-lines-into-one-big-string)