英数を英数+ESCに - KeyRemap4MacBook

投稿者 nanki 2008-04-28 23:38:00 GMT

vimで日本語を入力していると、ESC押しても日本語が解除されない。

そもそも、ESC遠すぎる。

以前使っていたThinkpadでは、半角/全角、無変換、F1が全てESCで便利だったのに。

DefaultKeyBindings.dictでなんとかなると思ったけど、ならなさそうなので、KeyRemap4MacBookを導入してみた。

英数をESCにする設定はあるが、英数を英数+ESCにする設定はないようだ。 というわけで、しばしの格闘の末…よくわかってないけど動いているっぽい。

たまに、英数にしようとして、検索ボックスの文字列を消したりする。 英数x2を英数+ESCにしたほうがいいかもしれないけど、取りあえずしばらく使ってみる。

diff -r 7af393f8e690 files/prefpane/checkbox.xml
--- a/files/prefpane/checkbox.xml Mon Apr 28 06:27:59 2008 +0900
+++ b/files/prefpane/checkbox.xml Mon Apr 28 23:37:57 2008 +0900
@@ -1053,6 +1053,10 @@
               <sysctl>remap.jis_eisuu2escape</sysctl>
             </item>
             <item>
+              <name>EISUU to EISUU &amp; Escape</name>
+              <sysctl>remap.jis_eisuu2jis_eisuu_escape</sysctl>
+            </item>
+            <item>
               <name>EISUU to Tab</name>
               <sysctl>remap.jis_eisuu2tab</sysctl>
             </item>
diff -r 7af393f8e690 src/kext/RemapUtil.cpp
--- a/src/kext/RemapUtil.cpp  Mon Apr 28 06:27:59 2008 +0900
+++ b/src/kext/RemapUtil.cpp  Mon Apr 28 23:37:57 2008 +0900
@@ -749,6 +749,15 @@
   }

   void
+  FireFunc::firefunc_jis_eisuu_escape(const RemapParams &params) {
+    unsigned int flags = allFlagStatus.makeFlags(params);
+    listFireExtraKey.add(FireExtraKey::TYPE_AFTER, KeyEvent::DOWN, 0, KeyCode::JIS_EISUU, CharCode::JIS_EISUU);
+    listFireExtraKey.add(FireExtraKey::TYPE_AFTER, KeyEvent::UP, 0, KeyCode::JIS_EISUU, CharCode::JIS_EISUU);
+    listFireExtraKey.add(FireExtraKey::TYPE_AFTER, KeyEvent::DOWN, flags, KeyCode::ESCAPE, CharCode::ESCAPE);
+    listFireExtraKey.add(FireExtraKey::TYPE_AFTER, KeyEvent::UP, flags, KeyCode::ESCAPE, CharCode::ESCAPE);
+  }
+
+  void
   FireFunc::firefunc_space(const RemapParams &params) {
     unsigned int flags = allFlagStatus.makeFlags(params);
     listFireExtraKey.add(FireExtraKey::TYPE_AFTER, KeyEvent::DOWN, flags, KeyCode::SPACE, CharCode::SPACE);
diff -r 7af393f8e690 src/kext/RemapUtil.hpp
--- a/src/kext/RemapUtil.hpp  Mon Apr 28 06:27:59 2008 +0900
+++ b/src/kext/RemapUtil.hpp  Mon Apr 28 23:37:57 2008 +0900
@@ -178,6 +178,7 @@
     void firefunc_commandSpace(const RemapParams &params);
     void firefunc_enter(const RemapParams &params);
     void firefunc_escape(const RemapParams &params);
+    void firefunc_jis_eisuu_escape(const RemapParams &params);
     void firefunc_space(const RemapParams &params);
     void firefunc_jis_kana(const RemapParams &params);
     void firefunc_jis_kana_x2(const RemapParams &params);
diff -r 7af393f8e690 src/kext/remap.cpp
--- a/src/kext/remap.cpp  Mon Apr 28 06:27:59 2008 +0900
+++ b/src/kext/remap.cpp  Mon Apr 28 23:37:57 2008 +0900
@@ -1589,6 +1589,15 @@
   }

   void
+  remap_jis_eisuu2jis_eisuu_escape(const RemapParams &params)
+  {
+    if (! config.remap_jis_eisuu2jis_eisuu_escape) return;
+
+    static KeyOverlayedModifier kom;
+    kom.remap(params, KeyCode::JIS_EISUU, ModifierFlag::NONE, FireFunc::firefunc_jis_eisuu_escape);
+  }
+
+  void
   remap_jis_eisuu2tab(const RemapParams &params)
   {
     if (! config.remap_jis_eisuu2tab) return;
@@ -2122,6 +2131,7 @@
   remap_jis_eisuu2optionL(params);
   remap_jis_eisuu2shiftL(params);
   remap_jis_eisuu2escape(params);
+  remap_jis_eisuu2jis_eisuu_escape(params);
   remap_jis_eisuu2tab(params);
   remap_jis_eisuu2middleclick(params);
   remap_jis_eisuu2rightclick(params);
参考:

This entry was posted on 2008-04-28 23:38:00 GMT and カテゴリ , . You can follow any response to this entry through the Atom feed. or a trackback from your own site.

タグ ,


トラックバック

トラックバックリンク:
http://blog.netswitch.jp/trackbacks?article_id=8618

コメント

  1. Takayama Fumihiko 2008-04-29 07:03:34 GMT:

    パッチありがとうございます!

    動作的に vim だけで有効のほうが良いかと思い Terminal, X11 のみで有効な形にして取り込ませていただきました。 For Japanese > Remapping for Applications > Enable at only Terminal, X11 > …

    http://www.pqrs.org/tekezo/macosx/keyremap4macbook/files/KeyRemap4MacBook-4.99.10.pkg.tar.gz

  2. nanki 2008-04-29 12:01:19 GMT:

    おおお。

    そういうこともできるんですね。 ただ手元の環境では、Cocoa版のVim.appを使っているので、それはどうしたらいいんだろう。

  3. Takayama Fumihiko 2008-04-29 22:24:36 GMT:

    なるほど。 cocoa-vim と Vim.app (Carbon) でしか試していませんが、こんな感じでしょうか。 http://www.pqrs.org/tekezo/macosx/keyremap4macbook/files/KeyRemap4MacBook-4.99.11.pkg.tar.gz

  4. nanki 2008-04-29 23:14:34 GMT:

    すんばらしいです。