将Ubuntu上的VSCode绑定从类Linux更改为类Mac

时间:2018-07-23 00:14:54

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

我在Mac上运行,并使用VMWare Fusion运行Ubuntu(已安装VS Code)。自然,Ubuntu上的默认安装具有linux样式的快捷方式,尤其是control-c(复制),control-v(粘贴),control-w(关闭窗口)。为了让生活更轻松,我想使用VS Code,在Ubuntu下,在VMWare下,具有类似Mac的快捷方式,即分别为command-c,command-v,command-w等。我浏览了文档和UI,除了手动更改每个方法外,找不到其他方法。有提示吗?

3 个答案:

答案 0 :(得分:3)

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

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

  

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

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

  

打开键盘快捷方式文件

请注意,它与打开用户界面以编辑快捷方式的"Open Keyboard Shortcuts"不同。

一旦选择了上面的命令,它将在一个拆分视图中打开您的键绑定,其中左窗格将为您显示一个只读的默认快捷方式文件,而右窗格将为您显示自定义键盘快捷键绑定。 (默认情况下为空)。应该看起来像这样:

enter image description here

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

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

希望有帮助!

答案 1 :(得分:3)

您可以通过在创建新绑定之前简单地换掉键盘映射来减轻工作量,但是,如果您在Ubuntu或任何Linux发行版上完全使用该终端,则Mac幻象将迅速消失。另外,除非您为Cmd +箭头键创建自定义键映射,否则它们的行为将不同。

如果您想自己减少工作量,那么我建议您使用Kinto。它将通过侦听您当前正在使用的应用程序来处理应用正确的(和本机的)键盘映射。它不会拦截像“自动键”或其他第三方重新绑定/重新映射工具这样的按键。

Kinto还为正常的Mac Cmd +箭头键行为提供了自定义键映射。

https://github.com/rbreaves/kinto

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

答案 2 :(得分:1)

您可能遇到的问题是Mac和PC键盘之间交换了asyncio.run()Command键。在Mac上,Alt/Option在空格键旁边,而在PC上,通常是Command键。我遵循了Nimeshka给出的答案,并添加了两个步骤:

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

随时使用my keybindings.json file