Emacs初心者のEmacs体験記

どうも、初心者のxyxです。VHDLやMLでEmacsを使う人が多いようなので、その体験記でも作ってみました。

でも本当に、Caps Lock(のキーをCtrlとして)を使うと楽だ!!

全体的に言って、Emacsの印象は、

ちなみに、チュートリアルは30分で読めるとどっかに書いてありましたが、日本語版でも数時間かかりました(

入力支援機構はやばい。Emacsやべぇ

目次

カーソル移動

C-f

forward

C-b

backword

C-n

next

C-p

previous

→word

M-f

←word

M-b

行頭

C-a

行末

C-e

end

前の文頭

M-a

次の文末

M-e

end

ファイル先頭

M-<

ファイル末尾

M->

pagedown

C-v

pageup

M-v

カーソルを中心に

C-l

C-u 0を先頭につければ、そこから開始にすることも

Emacsキーバインドって片手じゃ上下左右の移動が出来ないんですね。(viはhjklでqwerty配列の場合のみ片手で操作可能) やる気がないときに片手だけでぶわーって読めないのは残念(ぉ ちなみにdvorak配列でも両手無いと厳しいみたい。相対的な位置という面では、viの方がqwertyでもdvorakでも直感的かも。

それから、自分の使っている環境では、viがlで末尾までしか動かないのに対し、EmacsのC-fは次の行まで移動のよう

そしてこの無意識のうちにjやEscを押してしまう癖は何とかならんかな^^;

カーソルの上下移動で画面が急に変わるのもまだなれないかも。

編集

削除

del

[del]

本当の挙動はBS

BS

[BS]

本当はない

del

C-d

現在のdelと同じ動作

単語BS

M-[del]

delの挙動が変わったせいで逆方向になったように見える

単語BS

M-[BS]

単語del

M-d

行末までを削除

C-k

文末までを削除

M-k

びみょんな動作の変更のせいで、M-での挙動が少し不自然な感じになってます。

上3つは削除で消去でないので、貼付不可能に注意が必要かも

文末とかでC-dしても前に戻らないみたい。(viのxは戻る)

ヤンク(コピー)

ヤンクの貼り付け

C-y

ヤンクを遡る

M-y

C-yとM-yの直後にのみ発動可能、ある数だけ戻ったらループする

viと似た動作で、これは割りと覚えやすいです。

2文字以上削除したときのみコピーするという仕様も結構いいかも。C-kとかで連続して削除すると、削除されたりょういきがどんどん積み重なっていくのもいいですね。

gvimなどとちがって、yankはクリップボードと連動しているのもグッド。

そして、M-yで、過去のヤンクに遡れるのにびっくり

検索

検索

C-s

次を検索

C-s

前を検索

C-r

入力している途中から探しに言ってくれる「インクリメンタルサーチ」だそうです。C-rとかで、文字列の中をカーソルがびみょんに動きます。Enterなどで検索終了。

置換

全て置換

M-x replace-string

基本的にTab補完で打つ

ひとつずつ置換

M-x query-string

基本的にTab補完で打つ

ひとつずつ置換

M-%

上と同じもの

全て置換は、全体でまとめて1つの操作として、元に戻すことができます。

元に戻す

元に戻す

C-x u

元に戻す

C-_

元に戻す

C-/

後者のほうが使いやすい気がします。

マーク・選択

マークをセット

C-space

マークまでカット

C-w

要は切り取り

マークまでコピー

M-w

要はコピー

全領域選択

C-x h

全選択

古代からあるエディタって大体マークを使っているんですよね

ファイル

開く

C-x C-f

既に開いている場合は新しくウィンドウ・バッファを作る

保存

C-x C-s

各ウィンドウについて保存

C-x s

各ウィンドウで、保存していないものは保存するか聞いてくる

自動セーブされた編集を回復

M-x recover file

上の2つはおなじみのコマンドです。

ウィンドウ

ウィンドウを1つにまとめる

C-x 1

正確には自分自身以外のウィンドウを消す

ウィンドウリスト

C-x C-b

モード切替

M-x 何とか-mode

fundamental-modeやtext-modeなど

ウィンドウを上下に分割

C-x 2

ウィンドウを左右に分割

C-x 3

ウィンドウを新しいバッファで生成

C-x 4 C-f

これで新しいウィンドウでファイルが開ける(そのファイルも可)

下のウィンドウをスクロール

C-M-v (or Esc C-v)

Ctrlとメタキーの同時押し

他のウィンドウに移る

C-x o

複数ウィンドウは夫々独立に動くのですごく便利(な気がする)

制御コマンド

終了

C-x C-c

中断

C-z

コマンド基本

文字によるコマンド

C-x コマンド文字

単語によるコマンド

M-x コマンド文字列

文字列を打っている途中でもTabで補完できる

M-xのTabによるコマンドの補完はすごいですね。

数値指定

C-u 数値 コマンド

数値指定

M-数値 コマンド

やっぱりC-u打たずに数値を押してしまうから、気づいたら文書の内容が変わってるorz

コマンドだけじゃなく文字も繰り返し入力できるのはすごい

キャンセル

C-g

再帰編集レベルからは抜け出せない

再帰編集レベルから抜け出す

Esc Esc Esc

なにがあってもC-gで打ち消せたんですね。でかいコマンドに失敗してハングしたときもキャンセルできるらしい。でもEscをC-gで打ち消すのはなんだか不思議な気分w

Esc Esc Escとかっていうのもあるんですね、なんか一安心(ぉ

入力支援

Auto Fillモード

M-x auto-fill-mode

Text-modeなどならある長さで自動で改行してくれる、トグルでON/OFF

右マージンを指定

(C-u 数値) C-x f

文字を折り返す長さ、デフォルトは70

パラグラフをフィルしなおす

M-q

Auto Fillしてもらえなかったところを直す

インデント

Tab

全体をインデントしなおす

C-c C-q

正常に動かないことがある

選択領域をインデントしなおす

C-M-\

頭にC-x h(全選択)をつけることで全体を整形,すごく便利

アラインメント

M-x Align

代入文の位置を揃えてくれる

コメントアウト

M-;

シェルコマンド実行

M-!

grepやfindができる

シェル実行

M-x eshell

shellよりこっちの方がいいらしい。でもリダイレクトできない。

シェル実行

M-x term

普通にシェルを使うならこちらの方がお勧め
使い方:http://www.cs.cmu.edu/cgi-bin/info2www?(emacs)Term%20Mode

設定

文字コードを変える

C-x Enter f

これ以降その文字コードで保存

文字コードを指定して開く

C-x Enter c

このあとC-x C-fで開く

文字コードを変える(開きなおし)

C-x Enter r

文字化けしているときに使う

ヘルプ

ヘルプを出す

C-h ...

画面の指示に従う、時々別機能にされることがあるので、その場合は下を参照

ヘルプを出す

F1

画面の指示に従う

ヘルプを出す

M-x help

画面の指示に従う

ヘルプ全般

C-h ?

コマンドのヘルプ

C-h c

C-h c C-nやC-h c C-pなどというように使う

コマンドについての詳しいヘルプ

C-h k

同上

ファンクションのヘルプ

C-h f

C-h f previous-lineのようなかんじ

コマンドの候補のリストアップ

C-h a

Emacsやインストールされているもののヘルプ

C-h i

ヘルプのヘルプ

C-h C-h

備忘録

デフォで色づけされないとき

;; 自動で色を付ける設定
(global-font-lock-mode t)

まれにこれが~/.emacsから抜けてて動かないことがあるので、とりあえずこれを先頭に追加してみるべし

vi使いのためのもーど

vi-modeやviper-modeなるものがあるらしい。使ってないから分からないけど

ネタ

M-x termというのがあって、これでシェルを立ち上げてviを実行するか、直接viを実行することができます。これでvi使いも安心してemacsを使うことができます。(←嘘だーw) ちなみに環境によってはviからでも:!emacsで普通にemacsが実行できるみたい。

改行とかを表示

こちらを参照 『Emacsで全角空白、タブ、改行文字を表示させる』: http://ubulog.blogspot.com/2007/09/emacs_09.html

対応する括弧を強調

(show-paren-mode t)を.emacsに追加

参考文献

xyx/Emacs初心者のEmacs体験記 (last edited 2009-10-12 08:08:20 by xyx)