vimでä、ö、ø、åのようにアクセント付き文字やリガチャを入力する方法 [vi]
vimでラテンアルファベットのアクセント記号付き文字やリガチャ(合字)を入力するには、<Ctrl>+<K>(ContrlキーとKキーと同時に押す)を入力した後に関連する2文字を入力します。
例えば、äは、
<Ctrl>+<K> a "
とします。
" a の順番でもäが入力できます。
ä: a", "a, a:, :a
ö: o", "o
ø: o/, /o
å: aa, a@, @a
この機能は、digraphs機能です。
digraph機能は、ラテンアルファベット以外でも入力できます。
paは「ぱ」、puは「ぷ」と平仮名も入力できます。
コマンドモードで「:」を押した後にdigraphsを入力すると定義されているdigraphs機能の入力順の一覧が表示され、確認できます。
また、:digraphs {1番目の文字}{2番目の文字} {入力したい文字の10進数の文字コード}
で定義を変更できます。
:digraphs oo 228
これで、<Ctrl>+<K>ooでäが入力されます。
例えば、äは、
<Ctrl>+<K> a "
とします。
" a の順番でもäが入力できます。
ä: a", "a, a:, :a
ö: o", "o
ø: o/, /o
å: aa, a@, @a
この機能は、digraphs機能です。
digraph機能は、ラテンアルファベット以外でも入力できます。
paは「ぱ」、puは「ぷ」と平仮名も入力できます。
コマンドモードで「:」を押した後にdigraphsを入力すると定義されているdigraphs機能の入力順の一覧が表示され、確認できます。
また、:digraphs {1番目の文字}{2番目の文字} {入力したい文字の10進数の文字コード}
で定義を変更できます。
:digraphs oo 228
これで、<Ctrl>+<K>ooでäが入力されます。
vi(vim)でバックスペースで自動インデントや改行文字等を削除できるようにするには [vi]
vi(vim)を使っていて、間違って単語中でリターンキーを押してしまい改行され、元の位置に戻りたい場合はありますが、その場合、エスケープキーを押して、一旦挿入モードからノーマルモードに戻り、元の位置に戻り、<i>や<A>キーを押すことになり、少し煩雑です。
この場合、バックスペースで改行文字も削除できると便利です。
また、自動インデントの設定をしていると、インデントを解除(一つ前のインデントに戻る)したい時に、バックスペースでインデントを削除できると便利です。
以下の設定を~/.vimrcファイルにしておくと、インデント、改行文字等をバックスペースで削除できるようになります。
この場合、バックスペースで改行文字も削除できると便利です。
また、自動インデントの設定をしていると、インデントを解除(一つ前のインデントに戻る)したい時に、バックスペースでインデントを削除できると便利です。
以下の設定を~/.vimrcファイルにしておくと、インデント、改行文字等をバックスペースで削除できるようになります。
set backspace=indent,eol,start
MacOS Xのvi(vim)と「ことえり」(その2) [vi]
MacOS XのviでESCを押したらことえりの入力モードを「英字」にする方法が1つわかりました。
その方法は、KeyRemap4MacBookというキーボードカスタマイズツールをインストールして、
private.xmlにターミナルの場合のESCキーをESCキーと英字キーに変換させる設定にすることです。
private.xml
この方法ですと、sshでリーモートホスト上でのviでも有効です。
しかし、あくまでもターミナルでのESCキーの変換なので、vi以外のCUIアプリでも有効になるため、EmacsでEsc-xを入力した場合、当然ひらがなモードから英字モードになってしまします。
エディタをviだけしか使わない場合は、この方法がベストなのかもしれません。
その方法は、KeyRemap4MacBookというキーボードカスタマイズツールをインストールして、
private.xmlにターミナルの場合のESCキーをESCキーと英字キーに変換させる設定にすることです。
private.xml
<?xml version="1.0"?> <root> <list> <item> <name>LeaveInsMode with EISUU(Terminal)</name> <identifier>private.app_terminal_esc_with_eisuu</identifier> <only>TERMINAL</only> <autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen> <autogen>--KeyToKey-- KeyCode::C, VK_CONTROL, KeyCode::C, VK_CONTROL, KeyCode::JIS_EISUU</autogen> </item> </list> </root>
この方法ですと、sshでリーモートホスト上でのviでも有効です。
しかし、あくまでもターミナルでのESCキーの変換なので、vi以外のCUIアプリでも有効になるため、EmacsでEsc-xを入力した場合、当然ひらがなモードから英字モードになってしまします。
エディタをviだけしか使わない場合は、この方法がベストなのかもしれません。
MacOS Xのvi(vim)と「ことえり」 [vi]
MacOS Xのターミナルでvi(vim)を使ってことえりなど日本語入力モード後、ESCキーを押してコマンドモードに戻ったら同時に英語入力モードになるような設定ができるととても使いやすいのではないかと思います。
(今は、ESCを押す前に日本語入力ときは一旦英数キーなどで切り替えて使っています。この点Emacsは、コマンドモードへの切り替えはないので特に気にしなくてもいいのですが。)
ESCキーのマッピングをvimスクリプトで制御して、AppleScriptを呼び出して入力モードを変更することはできないでしょうか。
調査をしてみたいと思います。
(今は、ESCを押す前に日本語入力ときは一旦英数キーなどで切り替えて使っています。この点Emacsは、コマンドモードへの切り替えはないので特に気にしなくてもいいのですが。)
ESCキーのマッピングをvimスクリプトで制御して、AppleScriptを呼び出して入力モードを変更することはできないでしょうか。
調査をしてみたいと思います。