pit*_*las 8 linux macos vmware key-bindings visual-studio-code
我在 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,等等。我查看了文档和用户界面,除了手动更改每个更改之外,找不到其他方法来进行此更改。有小费吗?
我相信您可以编辑keybindings.json位于.config/Code/User/目录中的文件来覆盖默认的键盘快捷键。那不需要你一一编辑。
我首先打开默认的键盘快捷键文件。为此,请通过以下方式打开 VS Code 命令面板:
查看 -> 命令面板...(或按
Ctrl + Shift + p)
这将打开一个文本框,您可以在其中输入您的命令:然后输入类似的内容Shortcuts File,它将列出一个匹配的选项,如下所示:
打开键盘快捷键文件
请注意,它与"Open Keyboard Shortcuts"打开 UI 以编辑快捷方式不同。
选择上述命令后,它应该会在拆分视图中打开您的键绑定,其中左侧窗格将显示只读默认快捷方式文件,右侧窗格将显示自定义键盘快捷键绑定。(默认为空)。应该是这样的:
然后从左侧窗格(默认快捷方式)复制所有内容并将其粘贴到keybindings.json文件(右侧窗格)上。
现在您可以进行搜索和替换,这比手动更改每个快捷方式要快。
希望能帮助到你!!
全面披露
我是 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 也不包括使用 Cmd 和箭头键设置 macOS 样式光标/逐字操作的自定义 xkb 键盘映射文件。
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!
#
Run Code Online (Sandbox Code Playgroud)
您可能遇到的问题是Command和Alt/Option键在 Mac 和 PC 键盘之间交换。在 Mac 上,Command紧挨着空格键,而在 PC 上,这通常是Alt关键。我按照 Nimeshka 给出的答案添加了两个步骤:
alt为super(Windows 的 Linux 名称/Command 键)cmd为alt随意使用我的keybindings.json文件。