我无法相信谷歌或搜索引擎搜索都没有找到明确的答案,甚至没有多少讨论,但是:
是否可以在Google Chrome JavaScript调试器中编辑/自定义键盘快捷键?如果是这样,怎么样?
我已经习惯了Eclipse的 F5 / F6 / F7 / F8 调试器进入/ over /退出/恢复密钥,并希望在谷歌浏览器中使用相同的绑定。 F10 / F11 是OSX的默认Expose键,因此不适合调试器控制。
我对非正统的解决方案持开放态度,例如:水银/ AppleScript的。
相关但不太有帮助的网页:
答案 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)
每个操作系统都有关键映射器,允许覆盖默认键组合;这里有几个:
分叉并扩展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,设置全局快捷方式可能是目前最好的解决方案。这对我有用:
安装xcape(https://github.com/alols/xcape.git)。对于基于Debian的系统,您可以运行:
xcape -e 'F6=Control_L|Shift_L|I'
运行以下命令以映射ex。 F6到开发工具的快捷方式:
.bash_profile
设置您喜欢的快捷方式,并将相关命令放在{{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脚本中包含该代码段,请将其添加到脚本的末尾。