【问题标题】:Changing VSCode keybindings on Ubuntu from linux-like to Mac-like将 Ubuntu 上的 VSCode 键绑定从类 linux 更改为类 Mac
【发布时间】:2018-12-30 09:36:31
【问题描述】:

我在 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等等。我查看了文档和用户界面,除了手动更改每一个之外,找不到进行此更改的方法。有什么建议吗?

【问题讨论】:

  • 有更新吗?我的回答有用吗?
  • 这听起来像是在正确的轨道上,但它对我不起作用。有一个问题是键的名称——命令 vs 超级 vs 元,我认为这妨碍了我。但我真的只想修改其中的几个,所以我只是手工完成。谢谢!

标签: linux macos visual-studio-code vmware key-bindings


【解决方案1】:

codebling/vs-code-default-keybindings 帮助我处理了同样的问题。您可以复制并粘贴linux.negative.keybindings.jsonmacos.keybindings.json。 (任何自定义绑定都应该在这两个之后定义。)这个解决方案适用于我的系统(Arch + i3wm)。

【讨论】:

    【解决方案2】:

    全面披露

    我是 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 键盘映射文件,这些文件设置 macOS 样式光标/使用 Cmd 和箭头键的逐字操作。

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

    【讨论】:

      【解决方案3】:

      您可能遇到的问题是 CommandAlt/Option 键在 Mac 和 PC 键盘之间交换。在 Mac 上,Command 紧挨着空格键,而在 PC 上,这通常是 Alt 键。我按照 Nimeshka 给出的答案并添加了两个步骤:

      1. alt 替换为super(Windows/Command 键的 Linux 名称)
      2. cmd 替换为alt

      请随意使用my keybindings.json file

      【讨论】:

        【解决方案4】:

        我相信您可以编辑位于.config/Code/User/ 目录中的keybindings.json 文件以覆盖默认的键盘快捷键。这不需要您一一编辑。

        我首先打开默认的键盘快捷键文件。为此,请通过以下方式打开 VS Code 命令面板:

        查看 -> 命令面板...(或按Ctrl + Shift + p

        这将打开一个文本框,您可以在其中输入命令:然后输入类似Shortcuts File 的内容,它将列出一个匹配的选项,如下所示:

        打开键盘快捷键文件

        请注意,它与 "Open Keyboard Shortcuts" 不同,后者打开 UI 以编辑快捷方式。

        选择上述命令后,它应该会在拆分视图中打开您的键绑定,其中左侧窗格将向您显示只读的默认快捷方式文件,而右侧窗格将向您显示自定义键盘快捷键绑定。 (默认为空)。应该是这样的:

        然后从左侧窗格(默认快捷方式)复制所有内容并将其粘贴到keybindings.json 文件(右侧窗格)中。

        现在您可以进行比手动更改每个快捷方式更快的搜索和替换。

        希望对你有帮助!!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-06-25
          • 1970-01-01
          • 1970-01-01
          • 2017-01-16
          • 1970-01-01
          • 1970-01-01
          • 2021-11-02
          相关资源
          最近更新 更多