somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Emacs】リージョンの大文字小文字変換とコマンドの無効

リージョン内の大文字小文字変換と、コマンドの無効についてのメモです。

変換

リージョン選択後、以下のコマンドで変換できます。

;; 小文字変換
;; キーバインド:C-x C-l
M-x downcase-region.

;; 大文字変換
;; キーバインド:C-x C-u 
M-x upcase-region.

disable

上記で説明したキーバインドはデフォルトで無効となっています。そのときに、*Disabled Command*バッファに下記メッセージが表示されます。

You have typed C-x C-l, invoking disabled command downcase-region.
It is disabled because new users often find it confusing.
Here's the first part of its description:

   コマンドの説明

Do you want to use this command anyway?

You can now type
y   to try it and enable it (no questions if you use it again).
n   to cancel--don't try the command, and it remains disabled.
SPC to try the command just this once, but leave it disabled.
!   to try it, and enable all disabled commands for this session only.
You have typed C-x C-u, invoking disabled command upcase-region.

   See also `capitalize-region'.

内容は、以下のとおりです。

無効になっているコマンドを呼び出すキーバインドを入力しました。新しいユーザをよく混乱させるので、無効になっています。このコマンドを使用しますか?

変換くらいで別に混乱しないので、有効にしておいてください…。それぞれの記号に対する動作は以下のとおりです。

記号説明
y実行する ※詳細後述
n無効のまま、何もしない
SPC無効のまま、実行する
!実行し、すべての無効コマンドをこのセッションでのみ有効にする

yを入力すると、まずこのセッションでコマンドが有効になります。さらに、以下のように質問されます。

Please answer y or n. Enable command future editing sessions also?(y or n)

このセッション以降もコマンドを有効にするか聞かれます。yを選択した場合、init.elに以下の設定が追加され、有効になります。

(put 'downcase-region 'disabled nil)

コマンドの有効無効の設定です。nilをtにすると無効のままになります。upcase-regionについても同じ設定を加えればいいでしょう。

リージョン内の単語の先頭を大文字にする

おまけです。C-x C-u(upcase-region)入力時の*Disabled Command*に、capitalize-regionというコマンドが記載されています。これが見出しどおりの動作をするコマンドです。キーバインドはされていませんでした。