如何重新分配复制/粘贴键盘快捷键?


31

我已经使用Mac多年了,但是更喜欢在Windows上进行软件开发。我真的很习惯在Windows上使用以下快捷键:

<CTRL>  + INSERT: Copy
<SHIFT> + INSERT: Paste
<SHIFT> + DELETE: Cut

最近,我甚至开始在Mac上进行开发工作。但是,作为一种习惯,我非常想念这些捷径。实际上,我发现它们比COMMAND +(C / V / X)组合更加方便。

至少有办法重新分配这三个快捷方式吗?

我已经遍及Internet和“键盘”系统偏好设置,但没有找到任何东西。

PS:如果您想知道在Macbook Pro上的INSERT键的位置,请使用无线键盘。



Answers:


14
System Preferences: Keyboard: Modifier Keys...

然后交换Command和Control键。这将全局更改系统范围内所有键盘命令的所有内容。

在此处输入图片说明


3
有什么方法可以使command + left或command + right左移一个单词或右移一个单词而不是home和end?
trusktr

2
我真的希望对确实进行此切换的mac用户进行调查。
Micro

2
这也弄乱了我们亲爱的ALT-TAB!
西里尔·杜尚·多丽丝

5
如何回答<SHIFT> + INSERT:粘贴?
AD

37

这对于我经常使用的剪切/粘贴/复制功能非常有用。在此处输入图片说明


2
在某些应用程序(例如Finder)中,这不能很好地工作。问题在于有时“菜单”项被命名为“复制6个项”或“复制file.txt”,然后它不起作用
Mike Blandford 2015年

2
您如何确定快捷方式的名称?我在哪里可以看到所有可用的?因为在我的操作系统中,仅显示帮助菜单,仅此而已...在新的快捷方式对话框上没有自动完成功能
2015年

对于复制粘贴其逻辑,但例如CTRL + Back我不知道名称,而是想将其更改为Command + Back
vach 2015年

10

尝试创建~/Library/KeyBindings/和保存这样的属性列表,如DefaultKeyBinding.dict

{
    "^\UF727" = copy:; // control-insert
    "$\UF727" = paste:; // shift-insert
    "^\UF728" = cut:; // control-delete
}

我没有带插入键的键盘,因此无法测试前两个设置是否有效。最后的设置对我有用。

编辑:另一个选择是使用Karabiner(以前称为KeyRemap4MacBook):

<autogen>__KeyToKey__ KeyCode::PC_INSERT, VK_CONTROL | Modifierflag::NONE KeyCode::C, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ KeyCode::PC_INSERT, VK_SHIFT | Modifierflag::NONE, KeyCode::V, ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ KeyCode::FORWARD_DELETE, VK_SHIFT | Modifierflag::NONE, KeyCode::X, ModifierFlag::COMMAND_L</autogen>

1
试一试。它似乎不起作用。猜猜我将不得不习惯于Mac剪贴板快捷方式。非常感谢。我将尝试阅读链接。首先看,我不理解这些链接中的大部分内容:)
代码诗人

3
创建一个帐户只是为了修改它。KeyRemap4MacBook终于使我能够在Mac上使用ctrl / shift + ins / del,这确实使我的编码变得如此快。我已经涉足DoubleCommand,自定义按键映射等,但是这一功能开箱即用。
Arne 2014年

1
@Arne不幸的是,该应用程序停止使用Sierra更新。KeyBindings文件方法对我从未奏效。
ficuscr

2

System Preferences -> Keyboard -> Keyboard Shortcuts

您可以通过在列表中找到然后单击分配的键,然后键入要替换的新键来更改(或分配)多个热键。

要替换(例如)特定程序中的“复制”操作,请为您正在使用的程序(或所有程序)添加一个条目。在菜单标题框中,键入项目i的菜单文本(例如“复制”)作为文本。重新启动应用程序,然后单击程序中的菜单项,您将发现它已替换为您的自定义快捷方式


2

我也使用Ctrl-Ins,Shift-Ins等。

这里描述的解决方案以及将Home和End键重新映射为更类似于Windows的方式,例如

  • 在“应用程序”文件夹下打开TextEdit。如果TextEdit已打开,请使用File-> New创建一个新文档。应该有一个标记为“无标题”的窗口。
  • 在下面的窗口中选择文本,将其复制,然后将其粘贴到新的TextEdit窗口中。
  • 在TextEdit中,通过选择Format-> Make Plain Text将其转换为纯文本(默认为RTF)。
  • 接下来,选择“文件”->“另存为...”。在“另存为”对话框中,导航到主目录(在左侧的PLACES下查找旁边有您的名字的房屋图片)。在主目录中,双击“库”文件夹。如果看到KeyBindings文件夹,则双击它。如果不是,请单击“新文件夹”(在“库”目录中),将新文件夹命名为KeyBindings(无空格),然后双击它。键入DefaultKeyBinding.dict作为文件名(在顶部),然后单击“保存”。
  • 警告:TextEdit有时会尝试通过在文件名后附加.txt扩展名来“帮助”您。确保不会发生这种情况。如果要求使用.txt扩展名,请告诉TextEdit改用.dict。如果使用.txt,它将无法正常工作。如果遇到问题,请参阅下面的Nathan评论。
  • 在这些更改生效之前,您需要注销然后重新登录。

粘贴到~/Library/KeyBindings/DefaultKeyBinding.dict文件中的代码是这样的:

/* ~/Library/KeyBindings/DefaultKeyBinding.Dict
This file remaps the key bindings of a single user on Mac OS X 10.5 to more closely
match default behavior on Windows systems.  This particular mapping assumes
that you have also switched the Control and Command keys already.

This key mapping is more appropriate after switching Ctrl for Command in this menu:
Apple->System Preferences->Keyboard & Mouse->Keyboard->Modifier Keys...->
Change Control Key to Command
Change Command key to Control
This applies to OS X 10.5 and possibly other versions.

Here is a rough cheatsheet for syntax.
Key Modifiers
^ : Ctrl
$ : Shift
~ : Option (Alt)
@ : Command (Apple)
# : Numeric Keypad

Non-Printable Key Codes

Up Arrow:     \UF700        Backspace:    \U0008        F1:           \UF704
Down Arrow:   \UF701        Tab:          \U0009        F2:           \UF705
Left Arrow:   \UF702        Escape:       \U001B        F3:           \UF706
Right Arrow:  \UF703        Enter:        \U000A        ...
Insert:       \UF727        Page Up:      \UF72C
Delete:       \UF728        Page Down:    \UF72D
Home:         \UF729        Print Screen: \UF72E
End:          \UF72B        Scroll Lock:  \UF72F
Break:        \UF732        Pause:        \UF730
SysReq:       \UF731        Menu:         \UF735
Help:         \UF746

NOTE: typically the Windows 'Insert' key is mapped to what Macs call 'Help'.  
Regular Mac keyboards don't even have the Insert key, but provide 'Fn' instead, 
which is completely different.
*/

{
"\UF729"   = "moveToBeginningOfLine:";                       /* Home         */
"@\UF729"  = "moveToBeginningOfDocument:";                   /* Cmd  + Home  */
"$\UF729"  = "moveToBeginningOfLineAndModifySelection:";     /* Shift + Home */
"@$\UF729" = "moveToBeginningOfDocumentAndModifySelection:"; /* Shift + Cmd  + Home */
"\UF72B"   = "moveToEndOfLine:";                             /* End          */
"@\UF72B"  = "moveToEndOfDocument:";                         /* Cmd  + End   */
"$\UF72B"  = "moveToEndOfLineAndModifySelection:";           /* Shift + End  */
"@$\UF72B" = "moveToEndOfDocumentAndModifySelection:";       /* Shift + Cmd  + End */
"\UF72C"   = "pageUp:";                                      /* PageUp       */
"\UF72D"   = "pageDown:";                                    /* PageDown     */
"$\UF728"  = "cut:";                                         /* Shift + Del  */
"$\UF727"  = "paste:";                                       /* Shift + Ins */
"@\UF727"  = "copy:";                                        /* Cmd  + Ins  */
"$\UF746"  = "paste:";                                       /* Shift + Help */
"@\UF746"  = "copy:";                                        /* Cmd  + Help (Ins) */
"@\UF702"  = "moveWordBackward:";                            /* Cmd  + LeftArrow */
"@\UF703"  = "moveWordForward:";                             /* Cmd  + RightArrow */
"@$\UF702" = "moveWordBackwardAndModifySelection:";   /* Shift + Cmd  + Leftarrow */
"@$\UF703" = "moveWordForwardAndModifySelection:";   /* Shift + Cmd  + Rightarrow */
}

外部链接可能会消失。请在此处将最相关的内容与您的答案相关联,以便答案始终在此处,并且该链接可以用于更深入的研究。
kmarsh 2015年

哈,我忘了我什至写了这个答案。自从我编写Mac以来,我可能已经对其进行了5次重新铺砌,并在几年前习惯了Mac快捷方式。
Matt Frear 2015年

0

您可以使用以下文件配置(在“ 其他”选项卡中编辑)来安装和配置Karabiner应用程序:private.xml

<?xml version="1.0"?>
<root>
  <item>
    <name>Copy with Ctrl-Insert</name>
    <identifier>private.use_ctrl_insert_for_copy</identifier>
    <autogen>
        __KeyToKey__
        KeyCode::PC_INSERT, ModifierFlag::CONTROL_L,
        KeyCode::C, ModifierFlag::COMMAND_L
    </autogen>
  </item>
  <item>
    <name>Copy with Ctrl-C</name>
    <identifier>private.use_ctrl_c_for_copy</identifier>
    <autogen>
        __KeyToKey__
        KeyCode::C, ModifierFlag::CONTROL_L,
        KeyCode::C, ModifierFlag::COMMAND_L
    </autogen>
  </item>
  <item>
    <name>Cut with Shift-Delete</name>
    <identifier>private.use_shift_delete_for_cut</identifier>
    <autogen>
        __KeyToKey__
        KeyCode::DELETE, ModifierFlag::SHIFT_L,
        KeyCode::X, ModifierFlag::COMMAND_L
    </autogen>
  </item>
  <item>
    <name>Cut with Ctrl-X</name>
    <identifier>private.use_ctrl_x_for_cut</identifier>
    <autogen>
        __KeyToKey__
        KeyCode::X, ModifierFlag::CONTROL_L,
        KeyCode::X, ModifierFlag::COMMAND_L
    </autogen>
  </item>
  <item>
    <name>Paste with Shift-Insert</name>
    <identifier>private.use_shift_insert_for_paste</identifier>
    <autogen>
        __KeyToKey__
        KeyCode::PC_INSERT, ModifierFlag::SHIFT_L,
        KeyCode::V, ModifierFlag::COMMAND_L
    </autogen>
  </item>
  <item>
    <name>Paste with Ctrl-V</name>
    <identifier>private.use_ctrl_v_for_paste</identifier>
    <autogen>
        __KeyToKey__
        KeyCode::V, ModifierFlag::CONTROL_L,
        KeyCode::V, ModifierFlag::COMMAND_L
    </autogen>
  </item>
</root>

并在“ 更改密钥”选项卡中重新加载文件后启用新创建的项目。

相关:仅重新映射Ctrl + C,Ctrl + V和Ctrl-X


-1

我无法让Karabiner Elements适用于Sierra,也没有插入键。我最终决定,问题是我用左手按下修改键(Ctrl,Cmd,Opt),右手按下导航键(箭头,Home,End,Insert,Delete)。这就是为什么Cmd-C和Cmd-V如此尴尬。

因此,我正在尝试(通过上面的系统键盘快捷键):

  • Cmd- [用于复制
  • Cmd- [用于粘贴

1
我很难看到这是一个实际的答案,而不是关于您的试验/实验的评论/反馈
艾伦
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.