elisp

shell-toggle の動作をちゃんとトグルに

shell-toggle によってシェルに切り替えたり、元のバッファに戻ったりといった動作を文字通りトグルにするために、ちょっと一手間加えてみた。 (autoload 'shell-toggle "shell-toggle" "Toggles between the *shell* buffer and whatever buffer you are ed…

next-word-break, previous-word-break --- 前後の単語境界への移動

前後の単語境界へ移動するためのコマンド。M-f, M-b と使い分ければ、「次の単語の先頭」、「前の単語の終端」への移動がちょっとラクになるかも。 (defun next-word-break (&optional arg) "Move point forward ARG word breaks (backward if ARG is negati…

実質的な行頭、行末への移動

beginning-of-line, end-of-line をちょっと便利に。ポイントが既に行頭、行末にある場合はそれぞれ、 白文字でない最初の文字の前 白文字でない最後の文字の後 にポイントを移動します。 (defun my-beginning-of-line () "Move point to beginning of curre…

shell-command-dwim

shell-command、shell-command-on-region を1つのコマンドにまとめたもの。使い分けが面倒なのと、出力をバッファへ挿入するのにいちいち前置引数がいるのが面倒だったので作ってみた。リージョンが活性なら shell-command-on-region を、そうでないなら sh…

rotate-buffer --- バッファの巡回

next-buffer、previous-buffer では、名前が * で始まるようなバッファ(ヘルプ用のバッファとか)も巡回の対象になり、移動したいバッファになかなか辿り着けない。そこで、そういうのは適当にスキップして、ファイルを訪問しているバッファのみを対象とす…

copy-rectangle-as-kill

copy-region-as-kill の矩形版。なかったので作ってみた。 (defun copy-rectangle-as-kill (start end) "Save the region-rectangle as if killed, but don't kill it. In Transient Mark mode, deactivate the mark." (interactive "r") (let ((saved-point…

my-comment-dwim --- コメントアウト/解除

comment-or-uncomment-region の使い勝手を少し向上させたもの。リージョンが活性のときは通常通りリージョンのコメントアウト/解除を行うが、リージョンが活性でない場合はポイントのある行をコメントアウト/解除する。リージョンは行単位に補正されるの…

略語の登録をちょっと便利に

add-global-abbrev, add-mode-abbrev のラッパー。リージョンを登録するのに C-u 0 を指定するのがめんどくさかったので作ってみた。リージョンが活性ならリージョンを展開形として登録する。そうでない場合は数引数の扱いも含めて通常通り。 (global-set-ke…

Emacs Lisp と Ruby

Emacs Lisp と Ruby の勉強を並行して行っている。その率直な印象として、Lisp と Ruby は似ている。Ruby はユーザーフレンドリーな Lisp という感じだ。表層部分(字句、構文)は違えど、内部の実装(構文木になる辺りから)はかなり似通ってるんじゃなかろ…

Lisp 事始め

.emacs の内容もわかるようになってきたところで、早速ちょっとしたユーティリティ関数を二三、Emacs Lisp で書いてみた。テキストに区切り線を挿入する、という、たったそれだけのものなんだが、なんか、ものすごい時間がかかった。Emacs の基本編集コマン…

Emacs Lisp 入門

Emacs へ無理矢理移行して二日目。普段の文章書きにおいてはまだサクラエディタほど便利に使えてないけども、今日も(無理して)使いますよーっと。.emacs が書けないことには自分好みにカスタマイズして思い通りに使いこなすなんてことは無理だと思うので、…