作为 tmux 用户,有很多 Ctrl+b 的事情发生。还有很多火狐浏览器。
可以肯定地说,我从来都不想看到书签竖条。不感兴趣。 20年来从未使用过电脑。
有没有办法在不使用插件的情况下禁用 Firefox 中的 Ctrl+b?
我已经能够通过使用
Shortkeys扩展来禁用
Ctrl+B
快捷方式。
它的配置可能有点麻烦,所以这里有一个快速指南:
about:addons
) 中,单击快捷键条目旁边的 ...
菜单,然后选择“首选项”注意: 这只适用于网页上下文。如果您在光标位于例如 时按下
Ctrl+B
,默认的 Firefox 操作仍会执行。在 URL 栏或搜索栏中。但对我来说这已经是一个很大的进步了!
从 Firefox 72 开始,这需要使用 autoconfig.js 来完成。请参阅 Firefox 文档 和 示例用法。
老方法:这可以使用 userChrome.js
来完成使用以下代码:
var key = document.getElementById('viewBookmarksSidebarKb');
if (key) key.remove();
信用-我发现这个感谢这个答案https://superuser.com/questions/1318336/how-to-disable-ctrlq-shortcut-in-firefox-on-linux/1348082#1348082
我找到了一种在 macOS 版 Firefox 中使用 Greasemonkey 脚本来执行此操作的方法。
首先,安装 Firefox 的 Greasemonkey Extension 并为其授予适当的权限(例如,如果需要,“在私人 Windows 中运行”)。然后添加以下“新用户脚本...”:
// ==UserScript==
// @name Disable “Bookmarks Sidebar” keyboard shortcut
// @description Disables the Ctrl+B and Cmd+B keyboard shortcuts in Firefox
// @version 1
// @grant none
// ==/UserScript==
window.addEventListener('keydown', function(event) {
if (event.metaKey && event.keyCode == 66) { //macOS: Checks if Cmd and B are pressed
event.preventDefault(); //Blocks default event handler
}
if (event.ctrlKey && event.keyCode == 66) { //Windows: Checks if Ctrl and B are pressed
event.preventDefault(); //Blocks default event handler
}
}, false);
在上面的代码中,键盘键“B”对应于数字 66,但您当然也可以将其更改为其他键盘快捷键。
不幸的是,如果您选择了 URL 地址栏或搜索框,则此功能不起作用。但在网页加载后,或者在网页内单击任何元素时,它确实会起作用。所以这是一个解决方法/部分解决方案。
关于此的许多主题,但似乎没有一个有效,所以我只是手写了一些似乎有效的东西。这仅适用于 JavaScript,为了清晰起见,没有 try/catch 块。
目标:在contentEditable DIV中,阻止Firefox处理Ctrl-B,这样我们就可以用它来将文本内容设置为粗体。
基本思想是停止在正文处传播(抑制向上冒泡到浏览器),同时在控件上设置粗体(允许向下冒泡到在 div 中编辑的文本)。解决方案是仅限 FF,因为这是问题所在,但我可以根据要求将其扩展到 Webkit 和 IE。
HTML:
<body onkeydown="bodyKeyHandler(this, event);">
<div contentEditable="true" onkeydown="editorKeyHandler(event);"></div>
</body>
JavaScript:
function bodyKeyHandler(o,e) {
var c = e.ctrlKey;
var k = e.which;
if (e.ctrlKey) {
switch ( k ) {
case 17:
e.preventDefault();
o.stopPropagation();
break;
}
}
}
function editorKeyHandler(e) {
var c = e.ctrlKey;
var k = e.which;
if (c) {
switch ( k ) {
case 17:
document.execCommand("bold");
break;
}
}
}
一个重要的警告,当在 FF 中摆弄这个问题时,注入alert()来查看发生了什么会破坏它,因为警报弹出窗口会捕获事件并将其冒泡到浏览器!要查看它的工作原理,请删除所有跟踪。