Diff Mode

Menu Bar

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

使えそうで使えない bookmark 機能。 dired のバッファでも bookmark (C-x r m)できる。 プロジェクト毎に独立したファイルに保存できれば良いのだが。~/.emacs に lisp でプログラムを書く必要があるのだろうか。 複数の emacs を立ち上げると、終了するときにそれぞれが自動保存するため、~/.emacs.bmk が壊れてしまう。

TAGジャンプ

タグファイルを作れば、関数名、#defineされた定数、typedefされたタイプ名が、シンボル名として検索できる。

$ cd src
$ etags *.[ch]

emacsの中からなら、diredでディレクトリを呼び出して、M-! etags *.c *h としてもよい。 カレント・ディレクトリに TAGS というファイルができる。 emacsでソースを呼び出して、TAGジャンプさせる

Time Stamp

ファイルの最初から8行以内に Time-stamp: <> と書いてから ESC-x time-stamp とすれば時刻を入れてくれる。.emacs でカスタマイズして、Last-Update 等のようにファイルの保存時に自動的に入れることも出来る。

<愚痴>たったこれだけ(Time Stamp を入れる)のことをどうやるのか調べる手段がなさすぎ。ソースを読めって..最近の Linux Distribution では、emacs-lisp のソースは入ってないし、めったに使わない情報のために膨大なソースを入れるのもなんだかなぁ</愚痴>

X11 Clipboard とリージョン(region)

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

gnome-terminal で emacs-nw を使っていると F10 とかぶるので [編集:キーボードショートカット] で無効にする。

Quick Reference Key Bindings

コピーペースト
C-SPCマークの設定
ESC-wコピー
C-w切り取り
C-y貼り付け
C-x hバッファ全体のコピー
検索・置換
ESC-xreplace-string
ESC-xquery-replace
SPC置き換え
DELスキップ
ESC終わり
!以後全て
^前へ
履歴
C-/undo
C-x ESC ESCrepeat-complex-command
M-pprevious-complex-command
M-nnext-complex-commnad
その他
C-q C-M改行文字の挿入

日本語入力(leim)

C-\ とするとモードライン・インジケータに 'Aあ' というような表示が出る。 このモードで C-h I <RET> とすると説明が出る。Windows に比べると、 変換がかなり変だったりキー操作がかなり異なるので注意。

quail入力中
Kカタカナに変換
変換候補表示中
C-o文節を伸ばす
C-i文節を縮める
C-f次の文節
C-p前候補
l次の候補グループ
L前の候補グループ
C-cキャンセル

変なローマ字

よみ私の記憶quail
nnn'
ちょうcyouchou
でぃすくdhisukudyisuku

バッファの保存時の漢字コードの指定

C-x RET f "euc-japan-unix"EUC-JP UNIX改行を指定
C-x RET f "sjis-dos"Shift-JIS DOS改行を指定

コードを指定して読み込み

普通に開くと文字化けする場合

C-x RET c "utf-8-unix"次のコマンドの漢字コードを指定
この後ファイルを開けば良い

すでに開いているファイルが化けている場合

C-x RET c "utf-8-unix" RET M-x revert-buffer漢字コードを指定してから読み直す

Canna + Egg

ESC kカタカナ変換

Anthy

動作キーバインド
入力モードの切替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

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/ONM-x font-lock-mode'
一時的にフォントのサイズを変える'M-x text-scale-adjust' または 'C-x C-0' 'C-x C-+' 'C-x C--' *1*2

*1 日本語キーだと + を打つのに Shift が必要なのでいまいち
*2 ミニバッファに further adjustment と表示されている間は 0/+/- キーだけでよい

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-05-06 (金) 12:29:47 (2884d)