27.25 エミュレーション
GNU Emacsは、他のほとんどのエディタの(程度の差はありますが)
エミュレート(真似を)するようにプログラムできます。
標準の機能では、以下のものをエミュレートできます。
- EDT(DECのVMSエディタ)
-
M-x edt-emulation-onでEDTエミュレーションに入る。
M-x edt-emulation-offで通常のEmacsのバインディングに戻る。
EDTエミュレーションコマンドの大部分はキーパッドのキーであり、
大部分のEmacsのキーバインディングはそのまま使える。
EDTエミュレーションのバインディング変更はグローバルキーマップに対して行われ、
EDTエミュレーションの状態でバッファやメジャーモードを切り替えても問題ない。
- vi (バークレー エディタ)
-
viperは最新のviエミュレータである。
viperでは複数レベルのエミュレーションを実装している。
レベル1がもっともviに近く、レベル5はviといくらか違うところもあるが、
そのかわりEmacsの機能も活かせるようになっている。
viperを起動するには、M-x viper-modeと打つ。
すると、使い方のガイドを表示し、
どのレベルのエミュレーションにするかを尋ねてくる。
see Viper。
- vi (もう1つのエミュレータ)
-
M-x vi-modeはそれまでのメジャーモードにかわって
viメジャーモードに入る。
viの『入力』モードに入るコマンドはすべて、
それまでのメジャーモードに戻る動作になっている。
つまり、viの『入力』モードとして普通のEmacsが使えるのである。
viエミュレーションはメジャーモードとして動くので、
エミュレーション中にバッファを切り替えることはできない。
バッファを切り替えたければ、まず通常のEmacsに戻る。
viエミュレーションを多用するつもりなら、
vi-mode
コマンドにキーをバインドしたほうがよいだろう。
- vi (また別のエミュレータ)
-
M-x vip-modeは、M-x vi-modeよりもっと
viに酷似しているといわれる別のviエミュレータを起動する。
このエミュレータでは『入力』モードも通常のEmacsとは変わっていて、
<ESC>でviコマンドモードに戻る。
viコマンドモードのエミュレーションから通常のEmacsに戻るにはC-zと打つ。
このエミュレータはメジャーモードとして動くのではないので、
エミュレータを動かしたままさまざまな方法でバッファを切り替えることができる。
vi-mode
のようにコマンドvi-mode
で
入力モードを終了するのではないので、
vip-mode
にキーを割り当てる必要はない。
より詳しくはsee VIP。