linux - 将 Ubuntu 上的 VSCode 键绑定从类 linux 更改为类 Mac
问题描述
我在 Mac 上运行,并使用 VMWare Fusion 运行安装了 VS Code 的 Ubuntu。自然地,Ubuntu 上的默认安装具有 linux 风格的快捷方式,特别是 control-c(复制)、control-v(粘贴)、control-w(关闭窗口)。为了让我的生活更轻松,我想拥有 VS Code,在Ubuntu下,在VMWare下要有类似Mac的快捷键,分别是command-c、command-v、command-w等等。我查看了文档和用户界面,除了手动更改每一个之外,找不到进行此更改的方法。有小费吗?
解决方案
全面披露
我是Kinto的作者。
您可以通过在创建新绑定之前简单地交换键盘映射来减少您的工作,但是如果您在 Ubuntu 或任何 linux 发行版上使用终端,那么 Mac 错觉将很快消失。除非您为其创建自定义键盘映射,否则 Cmd + 箭头键的行为也不会相同。
如果您想为自己创造更少的工作,那么我建议您使用 Kinto。它将通过侦听您当前正在使用的应用程序来处理应用正确(和本机)的键盘映射。它不会像 Autokey 或其他 3rd 方重新绑定/重新映射工具那样拦截按下的键。
Kinto 还为正常的 mac Cmd + 箭头键行为和现在的 Alt + 箭头键行为提供了自定义键映射。
https://github.com/rbreaves/kinto
** 20 年 6 月 16 日更新 **
Kinto 现在使用 xkeysnail,它更简单且基于 python。也适用于较低的 udev 输入电平。也更容易配置,因为所有设置都属于一个基于 python 的文件。你可以使用 kinto 或 xkeysnail 来做你想做的事。
https://github.com/mooz/xkeysnail
** 下面解释旧的 XKB 方法 **
https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0
这也是一个要点,如果你只是想看看这一切的核心是什么,它不会在需要时改变你的键盘映射。Gist 也不包括自定义 xkb 键盘映射文件,这些文件设置使用 Cmd 和箭头键的 macOS 样式光标/逐字操作。
https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb
编辑:根据另一位成员的建议,我还将包含要点的实际内容,因为我实际上无法包含创建 Kinto 的所有代码和文件。除了 Kinto 能够动态更改您的键盘映射和应用更多特定于 macOS 行为的自定义键盘映射之外,这个要点和 Kinto 是相同的。
# permanent apple keyboard keyswap
echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
update-initramfs -u -k all
# Temporary & instant apple keyboard keyswap
echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd
# Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win
# Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
setxkbmap -option;setxkbmap -option altwin:swap_alt_win
#
# If you want a systemd service and bash script to help toggle between
# GUI and Terminal applications then look at project Kinto.
# https://github.com/rbreaves/kinto
#
# Note: The above may not work for Chromebooks running Linux, please look
# at project Kinto for that.
#
# If anyone would like to contribute to the project then please do!
#
推荐阅读
- c# - 通过 C# 创建帐户时的 Active Directory 密码策略实施
- html - div,左边是图像,右边是标题和文本
- postgresql - 如何在 PostgreSQL 中构建高效的多重查询功能?
- oracle-sqldeveloper - 如何在 Oracle SQL 中组合整数列以形成日期
- java - 比较 ArrayList 中的元素值
- javascript - 包含函数无法识别文本变量中的子字符串
- xamarin - 如何更改Android(Xamarin Forms)上按钮的文本对齐方式?
- clickhouse - 对数组进行分组和计数
- visual-studio - 无法在 Visual Studio 2015 中安装“Visual Studio 安装程序”
- android - 将 Java 转换为 Kotlin 错误后实现代码