自定义chrome开发人员工具javascript调试器键盘快捷键?

时间:2011-11-19 07:50:59

标签: google-chrome google-chrome-devtools keyboard-shortcuts customization javascript-debugger

我无法相信谷歌或搜索引擎搜索都没有找到明确的答案,甚至没有多少讨论,但是:

是否可以在Google Chrome JavaScript调试器中编辑/自定义键盘快捷键?如果是这样,怎么样?

我已经习惯了Eclipse的 F5 / F6 / F7 / F8 调试器进入/ over /退出/恢复密钥,并希望在谷歌浏览器中使用相同的绑定。 F10 / F11 是OSX的默认Expose键,因此不适合调试器控制。

我对非正统的解决方案持开放态度,例如:水银/ AppleScript的。

相关但不太有帮助的网页:

10 个答案:

答案 0 :(得分:9)

相关:

Addy已经开始出现问题'能够自定义DevTools的键盘快捷键/键绑定': https://code.google.com/p/chromium/issues/detail?id=174309

答案 1 :(得分:2)

Chrome快捷方式管理器对我不起作用,但使用了KeyRemap4MacBook。更多详情:Google Chrome Developer Tools keyboard shortcut customization on Mac

答案 2 :(得分:2)

我是用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>

答案 3 :(得分:1)

每个操作系统都有关键映射器,允许覆盖默认键组合;这里有几个:

  • 视窗
    • needle。
    • AutoHotkey的
  • OSX
    • 的xtype
  • Linux的
    • 自动密钥

分叉并扩展Chrome快捷方式管理器以获取本机功能。

<强>参考

答案 4 :(得分:1)

受@ jcollum的回答启发,这是另一个Karabiner private.xml定义。这个模仿我的IntelliJ键绑定。另请参阅apple.stackexchange.com上的keyboard shortcut toggling答案。

<?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>

答案 5 :(得分:1)

受@ jcollum的回答启发,这是另一个Karabiner private.xml定义,这个定义在原始问题中实现特定的Eclipse键绑定。另请参阅apple.stackexchange.com上的keyboard shortcut toggling答案。

<?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>

答案 6 :(得分:1)

我的解决方案是使用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脚本,因此快捷方式始终处于活动状态。

您可以添加更多快捷方式。您可以使用其他浏览器或应用程序。 我无法改进的一件事是,只有当浏览器中的Web开发人员工具处于活动状态时,才能监听快捷方式,也许有一种方法。

答案 7 :(得分:0)

唯一对我有用的是禁用操作系统级别的快捷方式(或将其更改为其他内容)。

在OSX中,您可以转到System Preferences > keyboard > Keyboard Shortcuts并更改/停用在Chrome中工作所需的快捷方式。

答案 8 :(得分:0)

如果有人使用Ubuntu,设置全局快捷方式可能是目前最好的解决方案。这对我有用:

  1. 安装xcape(https://github.com/alols/xcape.git)。对于基于Debian的系统,您可以运行:

    xcape -e 'F6=Control_L|Shift_L|I'

  2. 运行以下命令以映射ex。 F6到开发工具的快捷方式:

    .bash_profile

  3. 设置您喜欢的快捷方式,并将相关命令放在{{1}}中以获得永久性结果

答案 9 :(得分:0)

以下是用于映射Chrome调试程序快捷键的Autohotkey脚本

#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脚本中包含该代码段,请将其添加到脚本的末尾。