UNIX/便利な技/emacsの技

Top > UNIX > 便利な技 > emacsの技

emacs のキー操作、マウス操作の一覧です。 これがすべてではありません。自分で設定もできますし。 設定に関しては .emacs のほうを参照してください。
また、 Tips - xyzzy - のページなども参考になると思います。 ちなみに xyzzy とは emacs ライクな Windows 用 Editor です。自分は Windows では NTemacs を使っていますけど。

Table of Contents

キー操作 Edit

M とは Meta キー (◆、なければ Alt または Esc キー) のことです。 Esc の場合、Esc を押してから一旦離します。 Alt の場合、Ctrl と同じく押しながら、続きのキーを押します。 C はもちろん Ctrl キーです。

すべてのショートカットキーと emacs コマンドは一対一対応していますが、 ショートカットキーである場合、コマンド部分は省略します。

カーソル移動 Edit

できるだけ十字キーやマウスに頼らずにこれらのキーを使うと 玄人っぽいといいますか、 実際入力が速くなります。覚えましょう。

C-fカーソルを一文字前方(Forward)へ移動
C-bカーソルを一文字後方(Back)移動
C-pカーソルを前行(Previous)に移動
C-nカーソルを次行(Next)に移動
C-aカーソルを行頭に移動(アルファベットの最初の文字)
C-eカーソルを行末(End)に移動
M-fカーソルを1単語(文節)分前へ移動
M-bカーソルを1単語(文節)分後へ移動
M-aカーソルを段落の先頭に移動
M-eカーソルを段落の末尾に移動
C-v1ページ分下へスクロール
M-v1ページ分上へスクロール
C-lカーソル位置の行がウィンドウの中央に来るようにスクロール。再描画
M-<カーソルをファイルの先頭に移動
M->カーソルをファイルの最後に移動
M-{1パラグラフ前方へ移動
M-}1パラグラフ後方へ移動
M-x goto-line指定行へ移動

ファイル操作 Edit

C-x C-fファイルの読み込み(Find)
C-x C-rファイルのリードオンリーで読み込む
C-x C-qファイルのリードオンリー状態の切り替え
C-x C-s現在のファイルに保存(Save)
C-x C-w指定したファイルに保存(Write)
C-x C-cエディタを終了する。
C-x k強制終了する
C-x bバッファを開く
C-x C-bバッファリストの表示
C-x s現在あるバッファをすべてセーブする。
C-i現在のカーソル直後にファイルを読み込む
C-u C-x C-w文字コードを指定しての C-x C-w

マーク、削除、切り取り、貼り付け Edit

リージョンとはマークした位置から現在のカーソル位置までの領域を指します。

<BS>カーソルの左の文字の削除
C-dカーソル位置の1文字を削除
M-<BS>カーソルの直前の単語を削除し、クリップボードへコピー
C-kカーソルのある位置から行末までを削除し、クリップボードへコピー
C-<Space>マークをカーソル位置に設定
C-@同上
M-@単語の最後にマークを設定
M-hパラグラフをマーク
C-x hバッファ全体にリージョンを設定する
C-x C-p同上
C-wリージョンを削除し、クリップボードへコピー
M-w (Alt-w)リージョンをクリップボードへコピー
C-x x rC-wのようにに選択した領域を r という識別子のレジスタにコピーする。違うレジスタに記録すれば、いくつも保持しておくことができる。
C-x g rr レジスタの内容をペーストする。
M-<BS>カーソルの左の単語の削除
C-yクリップボードの内容をペースト
C-x C-oカーソル位置の空白行を削除する
M-\カーソル周辺の空白文字を削除する

検索、置換 Edit

C-s前方検索。C-s を繰り返せば前方に移動。C-r を繰り返せば後方に移動
C-r後方検索。C-s を繰り返せば前方に移動。C-r を繰り返せば後方に移動
C-u C-s正規表現による前方検索。C-s を繰り返せば前方に移動。C-r を繰り返せば後方に移動
C-u C-r正規表現による後方検索。C-s を繰り返せば前方に移動。C-r を繰り返せば後方に移動
M-x replace-stringカーソルより下のマッチした語を置換
M-% (M-x query-replace-string)カーソルより下にある語を対話形式で置換。y で確定。n で拒否。! で全置換。? でヘルプ表示。
M-x replace-regexp正規表現を指定できる replace-string
M-x query-replace-regexp対話形式で replace-regexp

emacs正規表現

まず基礎として正規表現のページを参照しておいてください。 emacs正規表現には癖があって、正規表現のグループ化が () ではなく、 \(\) になります。 ( は通常の文字である ( にマッチします。 また、後方参照は、\N (N は数字の意) になります。 M-x M-x replace-regexp を使用するまえに、まず C-u C-s でインタラクティブに、、マッチするかどうかチェックしておくとやりやすいと思います。

例1) M-x replace-regexp を用いて

<a href="http://www.google.com">
<a href="http://www.google.co.jp">

とい文字列を(HTML)

http://www.google.com
http://www.google.co.jp

のように置換したい場合

Replace Regexp: <a href="\([^"]*\)">
with: \1

のようにするとできます。

例2) M-x replace-regexp を用いて

Equation (\ref{eq:Poisson})
Equation (\ref{eq:Bernoulli})

という文字列を(TeX)

Equation \ref{eq:Poisson}
Equation \ref{eq:Bernoulli}

のように置換したい場合、

Replace Regexp: Equation (\(\\ref{[^}]*}\))
with: Equation \1

のようにするとできます。

例2) 最近の emacs では他にもいろいろとできるようです。例えば行頭に連番を挿入したい場合

Replace Regexp: ^\(\)
with: \,(1+ \#)

とするとできるようです。

このようなプログラマブルな replace-regexp新Emacsの強力な置換機能を使いこなす のページが参考になります。

ウィンドウ操作 Edit

C-x 2ウィンドウを上下に分割
C-x 3ウィンドウを左右に分割
C-x o分割ウィンドウ間を移動
C-x 0カーソルのある分割ウィンドウを閉じる
C-x 1カーソルのない分割ウィンドウを閉じる
C-x -分割ウィンドウを縮小(但し小さくする方のファイルの大きさまでにしか小さくならない)
C-x +分割ウィンドウを拡大(どちらかというと、縮小したウィンドウを戻す感じ)
C-x 4 f上下に分割したウィンドウでファイルを検索する
C-x 4 d上下に分割したウィンドウでdiredモードを開く
C-x 4 m上下に分割したウィンドウで新規mailを開く
C-x 5-2新しいウィンドウを開く(C-x C-c で閉じるとすべて終了してしまうので注意)
C-x 5-oウィンドウ間を移動
C-x 5-0カーソルのあるウィンドウを閉じる
C-zアイコン化

ウィンドウの分割幅は任意に指定できます。

C-u 9 C-x 2

で上の幅が9行のウィンドウが作れます。

日本語変換 Edit

C-\日本語入力への切り替え
C-p前候補
C-b次候補
C-uアルファベット大文字
C-lアルファベット小文字
C-o文節をのばす(重要)
C-i文節を縮める(重要)
記号入力。例えば@にょろで 〜
z記号入力。例えばフェンスモードの状態で zt で 〆。一覧は下
Z全角入力。例えばフェンスモードの状態で Zp で p
qアルファベット入力。一時的に日本語に変換されなくなる。RETURN(決定) で戻る
Q全角英数字入力。RETURN(決定) で戻る
C-\フェンスモードの状態で入力するとそれまでの入力に続けてアルファベットを入力できる。漢字変換を行うには再度 C-\ で戻す

z 記号一覧 Edit

z1
z!
z2
z@
z3
z#
z4
z$
z5
z%
z6
z^
z7
z&£
z8¢
z*×
z9
z(
z0
z)
z-
z_
z=
z+±
z\
z|
z`´
z~¨
zq
zQ〈]
zw
zW
zr
zR
zt
zT§
zp
zP
z[
z{
z]
z}
zs
zS
zd
zD
zf
zF
zg
zG
zh
zj
zk
zl
z;
z:
z'
z"
zx:-
zX:-)
zc
zC
zv
zV÷
zb°
zB
zn
zN
zm
zM
z,
z<
z.
z>
z/
z?

Egg + Wnn ローマ字かな変換規則一覧。 Edit

.emacs で定義することも可能です。

aiueo
kakikukeko
sasisuseso
tatituteto
naninuneno
hahihuheho
mamimumemo
yayiyuyeいぇyo
rarirurero
lalilulelo
wawiwuwewo
gagigugego
zazizuzezo
dadidudedo
babibubebo
papipupepo
gyaぎゃgyuぎゅgyeぎぇgyoぎょ
zyaじゃzyuじゅzyeじぇzyoじょ
jaじゃjijuじゅjeじぇjoじょ
dyaぢゃdyiでぃdyuぢゅdyeぢぇdyoぢょ
byaびゃbyuびゅbyeびぇbyoびょ
vaヴぁviヴぃvuveヴぇvoヴぉ
pyaぴゃpyuぴゅpyeぴぇpyoぴょ
kyaきゃkyuきゅkyeきぇkyoきょ
syaしゃsyuしゅsyeしぇsyoしょ
shaしゃshishuしゅsheしぇshoしょ
tyaちゃtyityuちゅtyeちぇtyoちょ
cyaちゃchicyuちゅcyeちぇcyoちょ
nyaにゃnyuにゅnyeにぇnyoにょ
hyaひゃhyuひゅhyeひぇhyoひょ
faふぁfiふぃfufeふぇfoふぉ
myaみゃmyuみゅmyeみぇmyoみょ
lalilulelo
ryaりゃryuりゅryeりぇryoりょ
lyaりゃlyuりゅlyeりぇlyoりょ
nn'N
xaxixuxexo
xyaxyuxyo
xtu
xtsu
xwaxwiうぃxweうぇxwoうぉ
xkaxke
xtiてぃ
xdiでぃxduどぅxdeでぇxdoどぉ
kwaくゎkwiくぃkwukweくぇkwoくぉ
gwaぐゎgwiぐぃgwugweぐぇgwoぐぉ
tsaつぁtsiつぃtsutseつぇtsoつぉ

拗音(っ)は子音を2つ続けても入力できます。

英大文字、英小文字変換 Edit

C-x C-lリージョン内の英大文字を英小文字に変換する
C-x C-uリージョン内の英小文字を英大文字に変換する
M-cカーソル前方の1単語の頭文字だけ大文字に、残りを英小文字にする
M-lカーソル前方の1単語の英大文字を英小文字にする
M-uカーソル前方の1単語の英小文字を英大文字にする

入力 Edit

M-[num][num]回のコマンド入力。M-5 C-u とすると C-u 5回。M-5 t なら ttttt。
C-[num]上に同じ
C-u [num]上に同じ [num] を指定しない場合は 4 回 C-u C-u とすると 16 回。
C-tカーソル位置と直前の文字を入れ替える
C-jRETURN
C-mRETURN
C-iTAB
C-oカーソル位置で改行
M-C-oカーソル位置で、行を分割する。カーソル右にあったテキストは、桁位置を保ったまま、次の行に送られる。
C-q制御コードの入力。例えば C-q C-l とすると ^L が入力される。C-q 143 で 8進 ASCIIコードで 0143 である c が入力される。

その他 Edit

C-^記号、ギリシャ文字などの入力。上の階層に戻るには Ctrl-g
C-h T日本語チュートリアル
C-h t英語チュートリアル
C-h iインフォ(Imformation)の利用
C-/Undo
C-x uUndo
C-gコマンドの中断、リージョン解除
C-[Esc
C-]IPAモード(quail-mode)との切り替え。その後 M-s を入力し、hangul でハングル、hanja-ksc で韓国語の漢字を入力できる。M-z でヘルプがでます。
M-#カーソルの位置,または右にある単語のスペルチェック
Insert会津大学のキーボードでは Ovwt モードのオンオフ。オフの仕方は覚えてきましょう。また、テンキー(キーボードの右側)の 0(Ins) を押してもなります。

スペルチェック Edit

M-x spell-wordカーソルの位置,または右にある単語のスペルチェック
M-x spell-region現在指定されているリージョンに含まれる単語のスペルチェック
M-x spell-stringエコーエリアに入力した文字のスペルチェック
M-x spell-buffer現在編集しているバッファに含まれる単語のスペルチェック
M-x ispell-buffer現在編集しているバッファに含まれる単語のスペルチェック。単語にフォーカスが飛ぶ。

変換 Edit

M-x set-file-coding-system

文字コードを変換できます。 以下の文字コードを指定します。

改行\文字iso-2022-jp (JIS)Shift_JISEUC-Japan
LF*iso-2022-jp*unix*sjis*unix*euc-japan*unix
CR*iso-2022-jp*mac*sjis*mac*euc-japan*mac
CR/LF*iso-2022-jp*dos*sjis*dos*euc-japan*dos
M-x hankaku-region

全角アルファベットの領域を選択して実行すると半角に変換します。

Wnn 辞書登録 Edit

M-x toroku-region選択した範囲の文字を辞書に登録
M-x edit-dict-item辞書の編集
M-x set-wnn-host-namewnn サーバーのホストを指定

メール (mh-e) Edit

M-x mh-smailメールを送る
M-x mh-rmailメールを読む
M-rM-x mh-rmail 時、既読メールの表示

複数人にメールを送るときは、

To: xxx@docomo.co.jp, xxxx, xxx

のように , (カンマ)で区切って記述します。 To: に書くと全員に全員のメールアドレスがわたってしまいますが、

Bcc: xxx@docomo.co.jp, xxxx, xxx

のように Bcc: を追加して宛先を記述すれば他の人のアドレスがわからないようにできます。

より詳しくは How to use mh-emh-e コマンドリファレンス などを読むといいと思います。

shell Edit

M-x shellemacs 上で eshell と呼ばれるシェルを起動。ls, cd などコマンドを打てます。emacs を画面分割して一画面をシェル画面にしておくと、コマンドラインに移る際に emacs の分割画面移動のショートカット C-o を使用するだけで済み、楽です。
M-x shell-commandコマンドを実行

モード Edit

その形式のファイルを編集するのにあったモードに変更します。 大抵はプログラミング用です。 特定の拡張子のファイルならば開いた時点でそのモードになります。

M-x shell-modeshll mode
M-x c-modec mode
M-x java-modejava mode
M-x prolog-modeprolog mode
M-x tex-modetex mode

モードが指定されていたら

M-x indent-region

で選択リージョンをきれいにインデント(字下げ)することができます。

自動折り返し Edit

特定の column (列)位置で折り返させることができます。 ただの txt ファイルを編集しているときに使用したりします。

M-x auto-fill-mode自動折り返し機能のオン、オフ
M-x fill-paragraph1パラグラフ自動折り返し
M-x fill-region選択リージョン自動折り返し

Directory Editor Edit

M-x dired

または

C-x d

で Directory Editor を起動できます。いろいろできます。 詳しくはGNU Emacs Manual - Dired Edit - または Info Node: (emacs-ja)Dired を参照するとよいでしょう。

マウス操作 Edit

左クリックカーソル移動
左ドラッグリージョンを指定し、クリップボードにコピー
左クリック→右クリックリージョンを指定し、クリップボードにコピー
左クリック→右クリック二回カット
中クリックペースト
モードライン上で中クリック1つにウィンドウに2つ以上のバッファがあるときそのバッファのみを表示。モードラインとは下のミニバッファとの境界線のことです。
C-左ダウンバッファメニュー
C-右ダウンフォントメニュー
C-中ダウンスクロールバーやモードライン上で、ウィンドウを分割します

xrea