ViewSourceWith と Emacsを使用して、StackOverflow の回答と質問を編集します。多くの場合、私はコードを含めますが、StackOverflow の書式設定規則では、コード として認識されるには 4 つのスペースでインデントする必要があると規定されています。手動で、またはマクロでさえ、それを行うのは苦痛です。
SOの以前の投稿を検索しましたが、何も見つかりませんでした。
Python モードから始めて、次のように書きました。
(defun text-shift-region (start end count)
"Indent lines from START to END by COUNT spaces."
(save-excursion
(goto-char end)
(beginning-of-line)
(setq end (point))
(goto-char start)
(beginning-of-line)
(setq start (point))
(indent-rigidly start end count)))
(defun text-shift-region-right (start end &optional count)
"Shift region of code to the right
Stolen from python-mode.
The lines from the line containing the start of the current region up
to (but not including) the line containing the end of the region are
shifted to the right, by `text-indent-offset' columns.
If a prefix argument is given, the region is instead shifted by that
many columns. With no active region, indent only the current line."
(interactive
(let ((p (point))
(m (mark))
(arg current-prefix-arg))
(if m
(list (min p m) (max p m) arg)
(list p (save-excursion (forward-line 1) (point)) arg))))
(text-shift-region start end (prefix-numeric-value
(or count text-indent-offset)))
)
;; Code in StackOverflow must be marked by four spaces at the
;; beginning of the line
(setq text-indent-offset 4)
(global-set-key "\C-c>" 'text-shift-region-right)
うまくいくようですが、アドバイス、代替案、バグレポートなどを歓迎します。