none
Emacsキーボード マップ スキーム利用時のタブキーの動作をデフォルトに戻す方法 RRS feed

  • 質問

  • 表題のとおりです。

    Visual Studio 2008の、オプション→環境→キーボードで、「次のキーボード マップ スキームを適用」プルダウンでEmacsを利用した際
    タブキーの挙動が特殊なものになります。

    最近のEmacsとは動作が違うため、これをデフォルトのものに戻そうと思い「ショートカット キー」のテキストボックス内でタブキーを押すと、
    タブ文字が入力されずフォーカスが別のコントロールに移ってしまい、変更が行えないです。

    なにか上手いことこの問題を回避することってできないでしょうか?
    2009年8月2日 8:29

回答

  • すでにご覧になられているかもしれませんが
    MSDN ライブラリによると Tab は使用できないようです。

    http://msdn.microsoft.com/ja-jp/library/5zwses53(VS.80).aspx

    メモ : 
    Esc、PrintScreen/SysRq、ScrollLock、Pause/Break、Tab、CapsLock、Ins、Home、End、PageUp、PageDown、Windows ロゴ キー、アプリケーション キー、すべての方向キー、Enter、数値キーパッドの NumLock、Del、または Clear、または Ctrl + Alt + Del は、グローバルのコマンドに割り当てることができません。
    2009年8月3日 0:40
  • 現在の設定でキーボードに割りついたショートカットを消してあげれば良さそうに思います。
    Emacs のキーボード スキームで Tab キーがどんな処理に割りついているのかはよく分かりませんが、

     コントロール操作のショートカット キー (Emacs スキーム)
     http://msdn.microsoft.com/ja-jp/library/ms165512.aspx

    によると、例えば Tab が Edit.SelectNextControl 、Shift+Tab が Edit.SelectPreviousControl に割りついているようなので、これを消せばいいのではないかと。

    [オプション]-[環境]-[キーボード] で、「以下の文字列を含むコマンドを表示」というテキスト ボックスがありますので、この中に対象のコマンドを入れてあげます。
    そこでここがポイントなのでけれども、日本語名で入れてあげないといけないので、「Edit.SelectNextControl」をこんな和訳かなと想像して「編集.次の」などと入れてみます。
    するとリスト ボックスの中に「編集.次のコントロールを選択」というのがヒットしますので、これをクリックします。
    「選択したコマンドへのショートカット」が「Tab(全体)」になっていますので、これがおそらく当たりだろうということで、「削除」をします。

    2009年8月3日 1:42

すべての返信

  • すでにご覧になられているかもしれませんが
    MSDN ライブラリによると Tab は使用できないようです。

    http://msdn.microsoft.com/ja-jp/library/5zwses53(VS.80).aspx

    メモ : 
    Esc、PrintScreen/SysRq、ScrollLock、Pause/Break、Tab、CapsLock、Ins、Home、End、PageUp、PageDown、Windows ロゴ キー、アプリケーション キー、すべての方向キー、Enter、数値キーパッドの NumLock、Del、または Clear、または Ctrl + Alt + Del は、グローバルのコマンドに割り当てることができません。
    2009年8月3日 0:40
  • 現在の設定でキーボードに割りついたショートカットを消してあげれば良さそうに思います。
    Emacs のキーボード スキームで Tab キーがどんな処理に割りついているのかはよく分かりませんが、

     コントロール操作のショートカット キー (Emacs スキーム)
     http://msdn.microsoft.com/ja-jp/library/ms165512.aspx

    によると、例えば Tab が Edit.SelectNextControl 、Shift+Tab が Edit.SelectPreviousControl に割りついているようなので、これを消せばいいのではないかと。

    [オプション]-[環境]-[キーボード] で、「以下の文字列を含むコマンドを表示」というテキスト ボックスがありますので、この中に対象のコマンドを入れてあげます。
    そこでここがポイントなのでけれども、日本語名で入れてあげないといけないので、「Edit.SelectNextControl」をこんな和訳かなと想像して「編集.次の」などと入れてみます。
    するとリスト ボックスの中に「編集.次のコントロールを選択」というのがヒットしますので、これをクリックします。
    「選択したコマンドへのショートカット」が「Tab(全体)」になっていますので、これがおそらく当たりだろうということで、「削除」をします。

    2009年8月3日 1:42
  • あんにんごさん
    totojoさん

    回答ありがとうございます。

    [オプション]-[環境]-[キーボード]を再度確認したところ、
    「編集.タブの挿入」コマンドが「Tab (テキスト エディタ)」に割り当てられていたため、これを削除したところ
    単純にエディタがタブキーに反応しなくなりました。

    設定をエクスポートとかして調べた結果、「追加キーボード マップ スキームを適用」プルダウンで
    Emacsが選択されていると「編集.タブの挿入」の動作が変わることがわかりました。

    で、色々調べた結果キーボードショートカットにマクロを割り当てることが可能なことを今更ながら知ったので、
    あとでマクロを書いて貼り付けて解決済みにしようと思います。
    2009年8月3日 7:50
  • こんにちは、フォーラムオペレーターの高橋春樹です。

    あんにんごさん、totojoさん、いつもお世話になっております。

    どようびさん、はじめまして。
    MSDNフォーラムのご利用ありがとうございます。

    タブキーの挙動が元に戻ってよかったです。

    マクロの情報を投稿した後に、解決済みに設定するとの事ですが、その後如何でしょうか?
    少し間があいてしまったので、このスレッドの事をお忘れになったのでは?と思いましたので、
    私の方でアドバイスを頂いた皆さんの投稿に、回答マークを付けさせて貰いました。
    もし、マクロの記述方法が分かりましたら、是非投稿して頂きたいと思います。

    今後ともMSDNフォーラムを宜しくお願いします。


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2009年9月2日 5:27