window像mac一样使用快捷键(AutoHotkey、SharpKeys和PowerToys)

2023-11-01

自己有win和mac两台笔记本, 每天都需要在两台电脑切换进行开发, 快捷键的差异就让人很难受(个人喜好mac快捷键, 常用的几个快捷键分布比较合理), 所以网上找来了解决方案供大家参考

我想作为一名 Mac User, 使用 Win 首先感到不适应的应该是快捷键的差异,那么我们第一个出场的 app 就直击这个痛点。

基本上日常工作、生活中常用的快捷键,如果忽略 Win 键盘上的 Ctrl 与 Mac 键盘上的 Command (⌘) 这两键键位不同这一点之外,操作逻辑大体一致,并且 Mac 上 Command (⌘) 组合键的位置更加顺手。

那么我们就有两种方案可以选择:

  • 改变快捷键组合的关联
  • 直接把 Ctrl 键和 Win 键对调

一. PowerToys(推荐)

最后找到了这款并作为推荐

  1. 支持改键(SharpKeys是直接修改注册表比较靠谱也不用后台启动程序)
  2. 映射快捷键(与AutoHotkey异曲同工)
  3. 提供一些实用工具(跟utool差不多比如alt+空格全局搜索,取色,截图等, 但是实用,主要免费且开源)

gitee传送门: PowerToys
进去找到x64版本进行下载
在这里插入图片描述
或者到releases下载更多版本
这里我们直接在readme下载最新版本.

安装过程就不讲了…就这样这样而已
好的,安装完了,打开进入设置界面(如果不小心缩起到右下角就在小图标右键->设置能找到下面的界面)
在这里插入图片描述
这里我设置了很多常用的, 比如复制粘贴撤销等等
左边快捷键” -> 映射成 “右边快捷键
比如按alt+x触发ctrl+x的效果就: “alt+x” -> “ctrl+x
在这里插入图片描述
另外注意了!
目前我发现微信会有快捷键冲突的问题(导致powerToys的映射失效), 目前我把微信里检测快捷键去掉是可行的, 如果你实在不行就尽量别再pc登微信了…
在这里插入图片描述

二. AutoHotkey

配置好的按键:

  1. ahk-mac-键盘快捷键
  2. autohotkey-windows-mac-keyboard

比如你在键盘上按下 Win 键 + C,电脑可以自动识别成 Ctrl + C,但是单独按下 Win 键还是会出现开始菜单,并没有改变其原本独立的功能;

**AutoHotkey 是 Win 上一款非常强大的脚本工具,可以通过自定义的一个快捷键触发一系列的动作。**但是在本篇文章中我们只介绍,如何通过它完成 Win 上快捷键的重映射。

AutoHotKey_1

下载安装完成之后,在右键 -> 新建中将会增加一个 AutoHotkey Script 的文件类型,创建后,右键 Edit Script,在这个文本框中我们将完成我们的目的 —— 快捷键重映射。

AutoHotkey_2

AutoHotkey Script 是一个脚本语言,以下是将 Ctrl 键的快捷键组合(常用)映射成 Win 键的快捷键组合的范例脚本:

LWin & Tab::AltTab //切换窗口
Win & t::Send ^{t} //新建标签页
Win & w::Send ^{w} //关闭标签页
Win & r::Send ^{r} //刷新页面
Win & c::Send ^{c} //复制
Win & v::Send ^{v} //粘贴
Win & x::Send ^{x} //剪切
Win & z::Send ^{z} //撤消
Win & y::Send ^{y} //重做
Win & s::Send ^{s} //保存
Win & a::Send ^{a} //全选
Win & f::Send ^{f} //搜索

当然,由于 Win 键盘的布局与 Mac 有着先天的差异,**所以仅将 Ctrl 的快捷键组合映射成 Win 的快捷键组合,可能还是会有些不便。**如果不常使用 Alt 的原生快捷键组合,我们也可以将上面脚本中的 LWin 替换成 LAlt:这样就将 Win 与 Mac 两者键位变成一样的。并且不必担心会与 Win 自带的 Alt 快捷键组合相冲突,因为 AutoHotkey 的快捷键有着更高的优先级。

使用 AutoHotKey 来对快捷键进行重映射是一个不错的解决方案,但是快捷键千千万,每个软件又有自己特定的快捷键。对一个个快捷键分开单独进行设置,还是一个治标不治本的方式,所以是不是有更好的方式呢?

三. SharpKeys

顾名思义,比如我们直接将 Ctrl 键重新映射到 Win 键上,当然 Win 键也需要映射到 Ctrl 键上,将原本键盘上的 Ctrl 与 Win 键的功能进行了一个对调,那么此时当你按下键盘上的 Ctrl 键就会出现开始菜单。

有!但是相对来说,我们更建议你在非公用电脑上使用该方法,否则后果严重。
用了一段时间, 改完复制粘贴等操作都挺丝滑的, 但是有一个问题!!
就是alt+tab的切换不正常, 哪怕用AutoHotkey或者其他方法都不能完美解决(能触发但是不能alt+tab 再加tab,也不能选中)就很蛋疼.
搞得只能按改完的键,也就是实体按键ctrl+tab的位置, 就很难受!(能解决的兄弟评论区分享下)
在这里插入图片描述

通过 SharpKeys 直接对键盘上的按键进行修改:将 Alt 键修改成 Ctrl 键,Win 键修改成 Alt 键,Ctrl 键修改成 Win 键。如此左下角部分的按键布局将与 Mac 完全一致,但是随之而来的问题就是 Alt + Tab 的快捷键变得不顺手了。没事,我们有 AutoHotKey,在 AutoHotkey 中键入 LControl & Tab::AltTab。

至此,两种方法,能基本上使得 Win 上的快捷键与 Mac 类似,基本上再不用为了快捷键而「精神分裂」了。

AutoHotKey 适用于 Windows 设备,大小 2.94 MB,开源、完全免费。

SharpKeys 适用于 Windows 设备,大小 967 KB,开源、完全免费。

至此,Win 的 Mac 改造之旅就告一段落了。希望你能通过这些技巧,在 PC 与 Mac 的交替使用中变得更加轻松。不必因为键位不同而使得工作效率大大降低,并且将许多 Mac 平台的小亮点移植到 Win 上。

两大系统各有优劣,各自有各自的特点,有很多不常用但却很实用的功能,何不将这些实用的功能合为一体,更好地为自己服务呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

window像mac一样使用快捷键(AutoHotkey、SharpKeys和PowerToys) 的相关文章

  • 如何使用 C++ 在 Linux 中创建窗口?

    我期待 Linux API 与 Windows API 类似 我在 Google 上看到的都是对 Qt 和 GTK 的引用 我实际上只需要一个简单的窗口来使用 OpenGL 进行绘制 所以这些库对于我的使用来说显得臃肿 Linux下Qt和G
  • 将元素与窗口底部对齐,但允许滚动到下方的内容

    我现在正在编写一个 jquery 滑块 并将宽度设置为 100 并且无论窗口如何调整大小 我都希望它与窗口底部对齐 我已经找到了让它在向下滚动时一直粘在底部的方法 但我不希望这样 我希望能够滚动到此滑块下方以获取更多内容 这个网站展示了我正
  • 活动背景昏暗

    我试图将活动显示为具有暗背景的浮动窗口 并且我使用以下代码来执行此操作 该代码取自 Google I O 2016 项目 protected void setupFloatingWindow int width int height int
  • 从渲染器接收消息超时:600.000 当我们使用 Jenkins windows 服务模式执行 selenium 脚本时

    我们每天都使用 jenkins 窗口服务 无头模式 执行我们的 selenium 自动化脚本 直到昨天它都工作正常 突然它停止工作并且无法启动浏览器 它显示以下错误消息 15536 77874 187 严重 从渲染器接收消息超时 600 0
  • Win32中RedrawWindow和UpdateWindow有什么区别?

    Win32中RedrawWindow和UpdateWindow有什么区别 既然它们似乎有相同的目的来刷新窗口 那么有什么区别呢 RedrawWindow通常用于立即强制重绘整个窗口 或其中的某些指定区域 UpdateWindow将强制仅重绘
  • 在 PowerShell 窗口中运行应用程序

    我正在尝试放弃命令提示符 因为它是一个死胡同 转向 PowerShell ISE 我还没有弄清楚如何在 PowerShell ISE 窗口中运行命令行应用程序 每次我使用 开始进程 时 都会出现 然后消失 命令提示符窗口 我看到有些人建议
  • 新的 WPF 窗口仅显示在原始窗口下方

    在我的 WPF 应用程序中 主窗体上有一个 ListView 用于显示数据集中的绑定数据 当用户双击 ListView 中的一行时 会打开一个详细信息窗口 在我的 XAML 中 我使用了一种样式在列表视图上创建双击处理程序
  • SDL2 升起窗口而不给予焦点

    我需要在窗口上显示工具提示 我正在使用工具提示创建第二个窗口 并使用 SDL RaiseWindow 将其带到顶部 然而 这样做会导致工具提示窃取焦点 这不是我想要的 有没有办法在不改变焦点的情况下将窗口置于顶部 另外 有没有办法在不改变窗
  • 当没有其他窗口打开时,System.Windows.Window.ShowDialog() 出现意外行为。知道为什么吗?

    当我的 WPF MVVM 应用程序尝试在主窗口启动之前显示两个连续的错误对话框窗口时 我发现了这一点 经过一些努力 确定第一个窗口后 应用程序进入循环 第二个错误对话框从未出现 我解决了这个问题 但我希望有人能启发我为什么会发生这种情况 看
  • 如何让编译日志在Emacs中创建一个新窗口?

    如果我在 emacs 中只显示一个窗口并使用 M x 编译 则该窗口会一分为二 我可以轻松查看编译缓冲区 但是 如果我显示更多窗口 编译日志就会接管其他窗口之一 这让我感到恼火 如何让emacs始终分割一个新窗口来显示编译日志 编辑 从我一
  • FFT 的窗口大小与数据长度

    我正在尝试对流音频数据进行快速频谱分析以捕获元音 类似于 JLip sync 使用 PyAudio 在短时间内 0 0625 秒 捕获小块 1024 的语音数据 使用 numpy fft 进行分析 并使用 numpy hanning 窗口消
  • 在新窗口中使用 jquery 显示从控制器返回的 PDF 流

    我有一个控制器操作 它读取 pdf从 azure blob 存储中读取文件并将流对象返回到 ajax method 控制器返回 var stream blobStorage OpenRead filepath await FileAsync
  • 如何在 Windows 中获取和设置系统音量

    我想使用 unity 和 c 将键盘点击时的操作系统音量设置为一定水平 例如我想将 Windows 音量 不是 unity 设置为 70 我该怎么做 void Update if Input GetKeyDown KeyCode A Set
  • 如何处理 Tkinter 中的窗口关闭事件?

    如何在 Python Tkinter 程序中处理窗口关闭事件 用户单击 X 按钮 Tkinter 支持一种称为协议处理程序 http web archive org web 20201111215134 http effbot org tk
  • 关闭主窗口时 WPF 应用程序不会关闭

    我习惯了在 Visual Studio 中进行 WinForms 编程 但我想尝试一下 WPF 我向我的项目添加了另一个窗口 名为 Window01 主窗口称为MainWindow 之前public MainWindow 构造函数我声明Wi
  • ExtJS打开窗口的最大高度

    我试图通过单击按钮 Ext Button 来打开一个窗口 Ext Window 问题是该窗口的尺寸必须为用户屏幕的 80 宽度和 100 高度 即它应该覆盖所有垂直空间 我真的无法创建一个工作示例 我使用的按钮是隐藏 显示这个窗口 它的大小
  • 创建可重用的 WINDOW 控件

    好吧 这似乎很难 或者我错过了一些明显的东西 我想创建可重复使用的 WINDOW 它将在所有产品中使用 这意味着该控件位于 WPF Controls 程序集中 Themes Generic xaml 不是一个解决方案 我需要为窗口提供自己的
  • Selenium Web 驱动程序如何知道新窗口何时打开,然后恢复执行

    我在使用 Selenium Web 驱动程序自动化 Web 应用程序时遇到问题 该网页有一个按钮 单击该按钮会打开一个新窗口 当我使用以下代码时 它会抛出OpenQA Selenium NoSuchWindowException No wi
  • Python:如何从另一个程序窗口获取文本标签?

    我想使用 Python 从另一个程序读取文本标签 我想我必须使用 WM GETTEXT 但我不知道如何使用 并且在互联网上找不到任何内容 我的程序获取活动窗口 但不读取文本标签 所以我希望有人可以帮助我 编辑 我添加了缓冲区和 SendMe
  • 我可以使用哪些命令行工具来获取每个平台上当前活动的应用程序/窗口?

    我正在尝试创建一个 AIR 应用程序来记录应用程序的使用情况 使用 AIR 从系统获取信息的唯一简单方法是使用命令行工具和抓取stdout 我知道类似的工具top and ps对于 OS X 但它们似乎都没有告诉我哪个应用程序 窗口是活动的

随机推荐