#navi(emacs)
#contents
**Diff Mode [#o3c28424]
-拡張子を.patchにするとdiff modeになる
-パッチを編集したいときは、ESC X toggle-read-only する
-パッチの中の不要なファイルは diff-file-kill (ESC K) で消す
**Menu Bar [#u4a9b82a]
sakuraのレンタルサーバーで、OSがFreeBSD 7.1になって emacs 22.3 が使えるようになった。だが、X11対応で作られておらず nwモードで立ち上がる。
最近はコマンドのキー・バインドを覚える余裕が無いので、Menu Barを頼りに使うことが多いのだが、nwモードでMenu Barを使うのは結構厄介だ。
Menu Barを呼び出すキー・バインドは、常識的な F10 で良いのだが、
このキー・バインドはGNOME Terminal等から使う場合は、すでに使われてしまっている。
GNOME Terminalで [編集:キーボードショートカット:メニューのショートカット・キーを無効にする] にチェックすると、F10キーがemacsに渡るようになる。
使用している端末でそのような設定が無い場合は、M+` (Alt + Shift + `) というキーの組み合わせでMenu Barを呼び出すことになる。
**Bookmark [#wf4efa85]
使えそうで使えない bookmark 機能。
dired のバッファでも bookmark (C-x r m)できる。
プロジェクト毎に独立したファイルに保存できれば良いのだが。~/.emacs に lisp でプログラムを書く必要があるのだろうか。
複数の emacs を立ち上げると、終了するときにそれぞれが自動保存するため、~/.emacs.bmk が壊れてしまう。
**TAGジャンプ [#g564c6ca]
タグファイルを作れば、関数名、#defineされた定数、typedefされたタイプ名が、シンボル名として検索できる。
$ cd src
$ etags *.[ch]
emacsの中からなら、diredでディレクトリを呼び出して、M-! etags *.c *h としてもよい。
カレント・ディレクトリに TAGS というファイルができる。
emacsでソースを呼び出して、TAGジャンプさせる
-M-. 定義部分に飛ぶ
-C-x 4 . 別ウィンドウに表示する
**Time Stamp [#u8919929]
ファイルの最初から8行以内に Time-stamp: <> と書いてから ESC-x time-stamp とすれば時刻を入れてくれる。.emacs でカスタマイズして、Last-Update 等のようにファイルの保存時に自動的に入れることも出来る。
~<愚痴>たったこれだけ(Time Stamp を入れる)のことをどうやるのか調べる手段がなさすぎ。ソースを読めって..最近の Linux Distribution では、emacs-lisp のソースは入ってないし、めったに使わない情報のために膨大なソースを入れるのもなんだかなぁ</愚痴>
**X11 Clipboard とリージョン(region) [#y8dc034c]
xtermの表示内容をマウスの左ボタンで選択して、別のxtermに中ボタンで貼り付けるという操作は、直感的でわかりやすいので良く使う。
ほんの数行の設定を別のコンピュータに移す場合、いちいちファイルを作って転送してとやるより、端末を呼び出してその場で編集してしまったほうが簡単だ。
ところが、xtermの選択範囲(x11のselection)を、emacsの編集画面で中ボタンを押して貼り付けようとすると、成功するときと失敗するときがある。
emacsを立ち上げてから一度もリージョン(region)を使っていないとうまくいくようだが、
そうで無い場合は、リージョンとして保存してあるバッファの内容を貼り付けてしまう。
M-x clipboard-yank
というコマンドを使えば、x11のclipboadの内容を貼り付けることができる。
ところが、これでも貼り付けに失敗することがある。xtermで左ボタンを選択してできる selection 領域は、clipboard ではないから、clipboard-yank では出てこないからだ。
面倒だが、xclipboard を立ち上げて New ボタンを押して selection を clipboard に
変えて、clipboard-yank としなければならないようだ。
逆に emacs のリージョンを clipboard に送るには、.emacs に以下のように書いておく必要がある。
(setq x-select-enable-clipboard t)
全く「誰か何とかしてくれ」と叫びたくなる面倒さだ。Mac や Windows のクリップボックスが如何に良くできているか(というかポリシーを貫いているか)が分かる例だ。
**F10 [#o4a56283]
gnome-terminal で emacs-nw を使っていると F10 とかぶるので
[編集:キーボードショートカット] で無効にする。
**Quick Reference Key Bindings [#cd462a07]
|BGCOLOR(white):|BGCOLOR(white):|BGCOLOR(white):|c
|>|>|BGCOLOR(#D0D8E0):コピーペースト|
|C-SPC|>|マークの設定|
|ESC-w|>|コピー|
|C-w|>|切り取り|
|C-y|>|貼り付け|
|C-x h|>|バッファ全体のコピー|
|>|>|BGCOLOR(#D0D8E0):検索・置換|
|ESC-x|>|replace-string|
|ESC-x|>|query-replace|
||SPC|置き換え|
||DEL|スキップ|
||ESC|終わり|
||!|以後全て|
||^|前へ|
|>|>|BGCOLOR(#D0D8E0):履歴|
|C-/|>|undo|
|C-x ESC ESC|>|repeat-complex-command|
|M-p|>|previous-complex-command|
|M-n|>|next-complex-commnad|
|>|>|BGCOLOR(#D0D8E0):その他|
|C-q C-M|>|改行文字の挿入|
***日本語入力(leim) [#c882a697]
C-\ とするとモードライン・インジケータに 'Aあ' というような表示が出る。
このモードで C-h I <RET> とすると説明が出る。Windows に比べると、
変換がかなり変だったりキー操作がかなり異なるので注意。
|BGCOLOR(white):|BGCOLOR(white):|c
|>|BGCOLOR(#D0D8E0):quail入力中|
|K|カタカナに変換|
|>|BGCOLOR(#D0D8E0):変換候補表示中|
|C-o|文節を伸ばす|
|C-i|文節を縮める|
|C-f|次の文節|
|C-p|前候補|
|l|次の候補グループ|
|L|前の候補グループ|
|C-c|キャンセル|
変なローマ字
|よみ|私の記憶|quail|h
|ん|nn|n'|
|ちょう|cyou|chou|
|でぃすく|dhisuku|dyisuku|
***バッファの保存時の漢字コードの指定 [#k165913f]
|BGCOLOR(white):|BGCOLOR(white):|c
|C-x RET f "euc-japan-unix"|EUC-JP UNIX改行を指定|
|C-x RET f "sjis-dos"|Shift-JIS DOS改行を指定|
***コードを指定して読み込み [#t4b3cfa5]
普通に開くと文字化けする場合
|BGCOLOR(white):|BGCOLOR(white):|c
|C-x RET c "utf-8-unix"|次のコマンドの漢字コードを指定|
||この後ファイルを開けば良い|
すでに開いているファイルが化けている場合
|BGCOLOR(white):|BGCOLOR(white):|c
|C-x RET c "utf-8-unix" RET M-x revert-buffer|漢字コードを指定してから読み直す|
**Canna + Egg [#uc85c941]
|ESC k| カタカナ変換|
**Anthy [#dde25aba]
|動作|キーバインド|h
|入力モードの切替|C-\|
|変換|space|
|変換する文節をひとつ前へ|C-b|
|変換する文節をひとつ後へ|C-f|
|変換する文節を一番前へ|C-a|
|変換する文節を一番後へ|C-e|
|変換する対象を広げる|C-o|
|変換する対象を狭める|C-i|
|次の変換候補へ|C-n|
|前の変換候補へ|C-p|
|変換のやりなおし|C-g or BackSpace|
|変換の確定|Enter or C-j or C-m|
|全角カタカナの切替(トグル)|q|
|半角カタカナの切替(トグル)|C-q|
|半角英数モードへ|l|
|全角英数モードへ|L|
|半角・全角英数モードからの復帰|C-j|
**その他のTips [#x8b57bdf]
|BGCOLOR(white):|BGCOLOR(white):|c
|Buffer内のgrep|'M-x occur' または、'C-u M-x occur'(前後の行も表示)|
|TABとSpaceの変換|リージョンを設定して 'M-x tabify' または 'M-x untabify'|
|キーマクロ|開始 'C-x (' 終了 'C-x )' 実行 'C-x e'|
|ファイルのブックマーク|登録 'C-x r m' 一覧 'C-x r l'|
|Buffer書き換え禁止|'C-x C-q' トグル動作 または 'M-x view-mode'|
|カーソル位置の文字コード|'C-x ='|
|バイナリ編集モード|'M-x hexl-mode'|
|バイナリ16進入力|'C-M-x 16進コード|
|改行文字の置き換え|'C-q C-j (C-jは任意のコントロール文字でもよい)|
|色付けを一時的にOFF/ON|M-x font-lock-mode'|
|一時的にフォントのサイズを変える|'M-x text-scale-adjust' または 'C-x C-0' 'C-x C-+' 'C-x C--' ((日本語キーだと + を打つのに Shift が必要なのでいまいち))((ミニバッファに further adjustment と表示されている間は 0/+/- キーだけでよい))|