Hi.
デフォルトのEmacsの挙動だとC-jに
newline-and-indent、C-mにnewline、C-oにopen-lineが割り当てられてて、結構頻繁に使うコマンドだと思います。僕は
open-lineがカーソル以降の文章を改行した後にそれらをインデントしてくれないのがずっと納得できなくて悩んでいました。そんなときにsmart-newlineが周りで話題になってたので入れてみました。
EmcasのC-mを便利にするsmart-newline.elを公開した - ainameの日記
とても便利っぽいけど、カーソル位置によって挙動が変わるのが僕のスタイルには合いませんでした。
で、結局自分で関数を自作することにしました。
(defun open-line-next-indent () "Open a line and indent the next line." (interactive) (save-excursion (newline) (indent-for-tab-command)) ) (global-set-key "\C-o" 'open-line-next-indent)めっちゃ簡単な関数ですけどこれが僕にとって理想のC-oの挙動だと思いました。
一度に
newline-and-indentせずに、newlineしてからindent-for-tab-commandでインデントするのがミソだと思ってます。newline-and-indentにしたら変な挙動になるので試したらいいと思います。そんな感じで、C-oが最終的に満足のいく挙動になって良かったと思います(笑)。
みなさんも理想のC-oの挙動に出会ってくださいね。

0 件のコメント :
コメントを投稿