GoogleもSO検索も、これに対する明確な回答や多くの議論を引き起こしたとは信じられませんが、
Google Chrome JavaScriptデバッガーでキーボードショートカットを編集/カスタマイズできますか?可能な場合、どのように?
私はEclipseに慣れています F5/F6/F7/F8 デバッガーがキーにステップイン/オーバー/アウト/再開し、Google Chromeで同じバインディングを必要とします。 F10/F11 OSXのデフォルトのExposeキーであるため、デバッガー制御には理想的ではありません。
私は、非正統的な解決策を受け入れています。 Quicksilver/AppleScript。
関連するが、あまり役に立たないページ:
関連:
Addyが問題「DevToolsのキーボードショートカット/キーバインディングをカスタマイズする機能」を開始しました: https://code.google.com/p/chromium/issues/detail?id=174309
Chromeショートカットマネージャーは機能しませんでしたが、KeyRemap4MacBookを使用すると機能しました。詳細はこちら: Google Chrome Macでのデベロッパーツールのキーボードショートカットのカスタマイズ
Karabiner でこれを行いました。フルサイズのキーボードを使用しています(F1-F19 キー)なので、マッピングしました F13 に F16。これにより、キーのレイアウトがChromeのボタンのレイアウトと一致します。キーマップファイル:
<?xml version="1.0"?>
<root>
<appdef>
<appname>CHROME</appname>
<equal>com.google.Chrome</equal>
</appdef>
<item>
<name>CHROMEDEBUGGINGKEY</name>
<appendix>This maps the F13-F16 keys to Chrome debugging keys</appendix>
<identifier>private.swap_chrome_to_debug_settings</identifier>
<only>CHROME</only>
<!--<autogen>__KeyToKey__ KeyCode::SPACE, KeyCode::TAB</autogen>-->
<autogen>
__KeyToKey__
KeyCode::F13, KeyCode::F8
</autogen>
<autogen>
__KeyToKey__
KeyCode::F14, KeyCode::F10
</autogen>
<autogen>
__KeyToKey__
KeyCode::F15, KeyCode::SEMICOLON, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::F16, KeyCode::SEMICOLON, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
</autogen>
</item>
</root>
私のソリューションは Autohotkey を使用しています。これは、どのアプリでもショートカットに使用するツールです。
次のような.ahkスクリプトを作成して実行します。
#IfWinActive ahk_class Chrome_WidgetWin_1 ; Chrome browser
F2::Send, ^b ; toggle breakpoint (Ctrl+b)
^b::Send, ^m ; use Ctrl+b for something else
簡単です:Chromeブラウザウィンドウがアクティブな場合にのみ、F2キーをオーバーライドしてCtrl + bをシミュレートします。これは公式のChromeブレークポイントを切り替えるショートカットです。
Windowsの起動時に実際にahkスクリプトを実行するので、ショートカットは常にアクティブです。
さらにショートカットを追加できます。別のブラウザまたはアプリを使用できます。まだ改善できない点の1つは、ブラウザーのWeb開発者ツールがアクティブなときにのみショートカットをリッスンすることです。
すべてのOSには、デフォルトのキーの組み合わせを上書きできるキーマッパーがあります。ここにいくつかあります:
Chromeネイティブ機能のショートカットマネージャーをフォークして拡張します。
参照
@jcollumの回答に触発されて、もう1つのKarabiner private.xml 定義がここにあります。これは、元の質問の特定のEclipseキーバインディングを実装しています。 Apple.stackexchange.comの keyboard shortcut toggling answerも参照してください。
<?xml version="1.0"?>
<root>
<item>
<name>Custom via private.xml</name>
<appdef>
<appname>ChromeLike</appname>
<equal>com.google.Chrome</equal>
<equal>com.vivaldi.Vivaldi</equal>
<prefix>org.epichrome.app.</prefix>
</appdef>
<item>
<name>Remap debugger keys in Chrome (Eclipse)</name>
<appendix>Change consumer keys to function keys matching Eclipse shortcuts</appendix>
<identifier>private.app_chromelike_switch_consumer_to_Eclipse_debugger</identifier>
<only>ChromeLike</only>
<autogen>__KeyToKey__ ConsumerKeyCode::KEYBOARDLIGHT_LOW, ModifierFlag::NONE, KeyCode::F11</autogen> <!-- F5 Step Into -->
<autogen>__KeyToKey__ ConsumerKeyCode::KEYBOARDLIGHT_HIGH, ModifierFlag::NONE, KeyCode::F10</autogen> <!-- F6 Step Over -->
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PREV, ModifierFlag::NONE, KeyCode::F11, ModifierFlag::SHIFT_L</autogen> <!-- F7 Step Out -->
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PLAY, ModifierFlag::NONE, KeyCode::F8</autogen> <!-- F8 Resume -->
</item>
</item>
</root>
@jcollumの回答に触発されて、もう1つのKarabiner private.xml 定義があります。これは私のIntelliJキーバインディングを模倣しています。 Apple.stackexchange.comの keyboard shortcut toggling answerも参照してください。
<?xml version="1.0"?>
<root>
<item>
<name>Custom via private.xml</name>
<appdef>
<appname>ChromeLike</appname>
<equal>com.google.Chrome</equal>
<equal>com.vivaldi.Vivaldi</equal>
<prefix>org.epichrome.app.</prefix>
</appdef>
<item>
<name>Remap debugger keys in Chrome (IntelliJ)</name>
<appendix>Change consumer keys to function keys matching IntelliJ shortcuts</appendix>
<identifier>private.app_chromelike_switch_consumer_to_intellij_debugger</identifier>
<only>ChromeLike</only>
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PREV, ModifierFlag::NONE, KeyCode::F11</autogen> <!-- F7 Step Into -->
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PLAY, ModifierFlag::NONE, KeyCode::F10</autogen> <!-- F8 Step Over -->
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_PLAY, ModifierFlag::SHIFT_L, KeyCode::F11, ModifierFlag::SHIFT_L</autogen> <!-- S-F8 Step Out -->
<autogen>__KeyToKey__ ConsumerKeyCode::KEYBOARDLIGHT_HIGH, ModifierFlag::NONE, KeyCode::F11, ModifierFlag::SHIFT_L</autogen> <!-- F6 Step Out -->
<autogen>__KeyToKey__ ConsumerKeyCode::MUSIC_NEXT, ModifierFlag::NONE, KeyCode::F8</autogen> <!-- F9 Resume -->
</item>
</item>
</root>
私のために働いた唯一のことは、OSレベルでショートカットを無効にすること(またはそれらを別のものに変更すること)でした。
OSXでは、System Preferences > keyboard > Keyboard Shortcuts
およびChromeでの作業に必要なショートカットを変更/無効にします。
誰かがUbuntuを使用している場合、グローバルショートカットを設定することがおそらく現時点での最良のソリューションです。これが私のために働いたものです:
Xcapeをインストールします( https://github.com/alols/xcape )。 Debianベースのシステムでは、以下を実行できます。
Sudo apt-get install git gcc make pkg-config libx11-dev libxtst-dev libxi-dev
git clone https://github.com/alols/xcape.git
cd xcape
make
Sudo make install
次のコマンドを実行して、exにマップします。開発ツールのショートカットへのF6:
xcape -e 'F6=Control_L|Shift_L|I'
好みのショートカットを設定し、関連するコマンドを.bash_profile
永続的な結果
これが私の Autohotkey マッピング用のスクリプトChrome Debugger Shortkeys
#IfWinActive ahk_class Chrome_WidgetWin_1 ; targetting only Chrome browser
F8::Send, {F10} ; chrome debugger next step map key F8 to chrome devtools F10
F9::Send, {F8} ; chrome debugger continue map key F9 to chrome devtools F8
F7::Send, {F11} ; chrome debugger step in map key F7 to chrome devtools F11
^F7::Send, +{F11} ; chrome debugger step out map key Strg+F7 to chrome devtools Shift+F11
既存のahkスクリプトにスニペットを含める場合は、スクリプトの最後に追加します。