#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/+/- キーだけでよい))|