Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workaround for text boxes #55

Closed
ganaware opened this issue Jan 21, 2019 · 2 comments · Fixed by #755
Closed

Workaround for text boxes #55

ganaware opened this issue Jan 21, 2019 · 2 comments · Fixed by #755

Comments

@ganaware
Copy link
Contributor

ganaware commented Jan 21, 2019

概要

  • VSCode のテキストボックスのキーバインドはカスタマイズができません
  • そのため、テキストボックスで Emacs 的な操作をすると思わぬ結果になります
  • 思わぬ結果になるよりは、何も起こらないように無効にしておいたほうが良いのではないかと思います。

VSCode のテキストボックスの現状

VSCode では、現在のところテキストボックスでのキーバインディングのカスタマイズはほとんどできません。

そのため、テキストボックスでのキーバインディングはほとんどデフォルトの動作をします。

  • Windows ではデフォルトのキーバインディングは Emacs とは割と異なります
  • macOS での事情はわかりませんが、おそらく割と Emacs と似ているのではないかと思います
  • Linux での事情もわかりません

このような事情なので、Windows 特有の問題といえると思います。

Windows での例

例えば Search View (メニューの View ⇒ Search) を開いて、
左上の検索文字列を入力する欄に文字を入力している際に、

  • C-b を押すと
    • 期待すること: カーソルが左へ動く
    • 実際に起こること: Search View が閉じる
  • C-f を押すと
    • 期待すること: カーソルが右へ動く
    • 実際に起こること: Find Widget が表示される

といった、期待とはかけ離れたことが起こります。

Workaround

期待とはかけ離れたことが起こるよりは、何も起こらない方が都合が良いと思います。

そこで、テキストボックスで自然と行ってしまいがちな Emacs 的操作について、Windows では動作しないような設定をすると良いのではないでしょうか?

[
    {
        "key": "ctrl+f",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "ctrl+b",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "ctrl+a",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "ctrl+e",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "alt+f",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "alt+b",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "ctrl+d",
        "when": "isWindows && inputFocus && !textInputFocus",
    },
    {
        "key": "ctrl+h",
        "when": "isWindows && inputFocus && !textInputFocus",
    },
    {
        "key": "alt+d",
        "when": "isWindows && inputFocus && !textInputFocus",
    },
    {
        "key": "ctrl+k",
        "when": "isWindows && inputFocus && !textInputFocus",
    },
    {
        "key": "ctrl+w",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "alt+w",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "ctrl+y",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "alt+y",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "ctrl+m",
        "when": "isWindows && inputFocus && !textInputFocus",
    },
    {
        "key": "ctrl+j",
        "when": "isWindows && inputFocus && !textInputFocus && !findWidgetVisible",
    },
    {
        "key": "alt+l",
        "when": "isWindows && inputFocus && !textInputFocus",
    },
    {
        "key": "alt+u",
        "when": "isWindows && inputFocus && !textInputFocus",
    },
    {
        "key": "alt+backspace",
        "when": "isWindows && inputFocus && !textInputFocus",
    }
]
@whitphx
Copy link
Owner

whitphx commented Jan 23, 2019

ありがとうございます、検討させていただきます。

@whitphx
Copy link
Owner

whitphx commented Apr 10, 2021

長らく放置してしまいすみません。
#755 でこの修正をして、次のリリースに含めます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants