首页 > 解决方案 > 将 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等等。我查看了文档和用户界面,除了手动更改每一个之外,找不到进行此更改的方法。有小费吗?

标签: linuxmacosvisual-studio-codevmwarekey-bindings

解决方案


全面披露

我是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!
#

推荐阅读