手元でちょっとメモる時のオレオレ記法として、コマンドの出力やログ片、コード片はタブでインデントしている。
これまでは
- yank
- 貼り付けた範囲を選択
- string-rectangle(C-x r t)でタブを挿入
とやっていたが、いいかげん面倒に感じてきたので「タブでインデントしてyank」をコマンド化してみた。
(defun yank-with-tab-indent () (interactive) (insert (with-temp-buffer (yank) (goto-char (point-min)) (replace-regexp "^" "\t") (when (= (point) (point-max)) (delete-backward-char 1)) (goto-char (point-max)) (when (not (= ?\n (char-before))) (insert "\n")) (buffer-string)))) (global-set-key (kbd "C-S-y") 'yank-with-tab-indent)