crux 20170801.1334(in MELPA)
A Collection of Ridiculously Useful eXtensions

概要

crux パッケージは以下の要素に分かれています。

cruxには様々な編集コマンドが用意されています。
ひとつひとつ見ていきましょう。

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてcruxを使う方は
以下のコマンドを実行します。

M-x package-install crux

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name crux

M-x crux-indent-rigidly-and-copy-to-clipboard

M-x crux-indent-rigidly-and-copy-to-clipboard は、
regionをインデントした内容をキルリングとクリップボードに格納します。

このコマンドを実行しても、見た目上何の変化もないので不思議に思うかもしれませんが、
M-x helm-show-kill-ringやM-x anything-show-kill-ringでキルリングの内容を見てみればインデントされた内容が入っていることが確認されます。

デフォルトのインデント幅は4ですが、数引数により任意の数のインデントに設定できます。
デフォルトが4なのは、おそらくMarkdownでコードを貼り付ける際にスペース4つのインデントが必要だからだと思われます。
ブラウザからGitHubへ書き込むときにEmacsのコードを貼り付けるのに便利でしょう。

M-x crux-smart-open-line-above

M-x crux-smart-open-line-above は、現在行より1つ上の行に空行を作成した後にインデントします。
実行時の桁には依存しません。

カーソル位置を★とすると、このような挙動になります。

(defun test ()
  (inter★active)
  )


(defun test ()
  ★
  (interactive)
  )

M-x crux-smart-open-line

M-x crux-smart-open-line は、現在行より1つ下の行に空行を作成した後にインデントします。
crux-smart-open-line-aboveと対比してください。

(defun test ()
  (inter★active)
  )


(defun test ()
  (interactive)
  ★
  )

M-x crux-top-join-line

M-x crux-top-join-line は、下の行と連結します。
ぶっちゃけ (delete-indentation 1) を呼んでいるだけです。

(defun test ()
  (inter★active)
  )


(defun test ()
  (interactive)★)

M-x crux-kill-whole-line

M-x crux-kill-whole-line は、 M-x kill-whole-line の後にインデントします。
現在行の内容はC-k 同様削除されてキルリングに格納されます。

(defun test ()
  (inter★active)
  )


(defun test ()
  ★)

M-x crux-kill-line-backwards

M-x crux-kill-line-backwards は、現在行の行頭からカーソル位置までを削除し、キルリングに挿入します。
その後にインデントを正します。

(defun test ()
  (inter★active)
  )


(defun test ()
  active)
  )

見ての通り、Lispで使うと括弧の対応が崩れるので危険です(笑)

M-x crux-move-beginning-of-line

M-x crux-move-beginning-of-line は、C-a(M-x beginning-of-line)の強力版です。
最初に行頭の非空白文字に移動し、もう一度実行すると行頭に移動します。
M-m (M-x back-to-indentation) と M-x move-beginning-of-line の合わせ技です

(defun test ()
  (inter★active)
  )


(defun test ()
  ★(interactive)
  )


(defun test ()
★  (interactive)
  )

M-x crux-indent-defun

M-x crux-indent-defun は、現在の関数をインデントします。
不思議なことにEmacs標準にはなぜかM-x indent-defunが用意されていないのです。

(defun test ()
    (inter★active)
  )


(defun test ()
  (inter★active)
  )

M-x crux-ispell-word-then-abbrev

M-x crux-ispell-word-then-abbrev は、 M-$ (M-x ispell-word でスペルチェック)の後に略語を登録します(define-abbrev)。
英語でスペルチェックするには aspell をインストール後、 ~/.aspell.conf に

lang en_US

と書いてください。

C-uをつけるとlocal abbrev、つけないとglobal abbrevとなります。

M-x crux-insert-date

M-x crux-insert-date は、現在時刻をカーソル位置に挿入します。

Sat Jul 30 06:00:50 2016

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。