アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

空白一つにこだわりたい(2)

こんにちは、chibaです!
完全にネタ切れなのですが、毎週1つのエントリーペースは守って行きたいので連投です。
質より量でまいります。
以前、空白一つにこだわりたいというエントリーを書きましたが、割と日々便利に使っています。
最近はちょっと違ったところで、空白を一つにしたい状況に遭遇しています。

- [ ]  こんにちは   あいうえお    かきくけこ
- [ ]   こんばんは  あいうえお   かきくけこ
- [ ]  おはよう  あいうえお   かきくけこ

という感じなのですが、何かから行をコピペしてくると発生することが多いです。
これをちまちま直しているのが非常に手間ということで、適当に、elispを書いてみました。

(defun just-one-space-each ()
  (interactive)
  (save-excursion
    (let* ((begin (progn (beginning-of-line) (point)))
           (end (progn (end-of-line) (point)))
           (begin (min begin end))
           (end (max begin end)))
      (goto-char begin)
      (while (and (re-search-forward " +" nil t) (<= (point) end))
        (replace-match " ")))))

各行で実行すると

- [ ] こんにちは あいうえお かきくけこ
- [ ] こんばんは あいうえお かきくけこ
- [ ] おはよう あいうえお かきくけこ

という風に空白1つに統一できます。快適!
ちなみに、Twitterのつぶやきで最近 delete-indentation (M-^)というのを教えてもらいました。
行の連結に使えるのですが、just-one-spaceの使いどころと似ています。 ■