-------------------------- 2017.5.12 更新 -------------------------------
修改共通映射
1,把 FN + u/o 键变成 OPTION+左/右。(手指头短,按着累。。。)
2,把 FN + p/; 键变成 原来的 FN + u/o(也就是到文件首/尾)
iTerm2映射
1,把 FN + p/; 键变成 HOME/END 单个键。
因为如果在 iTerm2 中使用共通的 FN + p/; 映射的话,是TAB切换的快捷键。
-------------------------- 2017.5.12 更新 -------------------------------
-------------------------- 2017.5.4 更新 -------------------------------
1,在Idea中,使用 FN + I/K + Shift + Command,来做向下全选时,不好用。下面的映射使这个功能好用。
注意:这个功能映射要在 FN +ikjl 上面
-------------------------- 2017.5.4 更新 -------------------------------
-------------------------- 2017.5.3 更新 -------------------------------
1,把 FN+TAB 映射成 CMD+TAB。
-------------------------- 2017.5.3 更新 -------------------------------
-------------------------- 2017.5.2 更新 -------------------------------
1,SublimeText3装了ExpandRegion插件后,把这个插件的快捷键设置成和Idea的 extend selection一样的快捷键Ctrl+W。然后,把FN+W映射成Ctrl+W。
-------------------------- 2017.5.2 更新 -------------------------------
-------------------------- 2017.4.28 更新 -------------------------------
1,把 FN + [/] 变成 CMD + [/]
2,把把 FN + z 变成 command + z
3,把自带的 mouse mode v2 和其它配置里,以 HJKL 方向键,变成 IKJL
-------------------------- 2017.4.28 更新 -------------------------------
-------------------------- 2017.4.1 更新 -------------------------------
1,把系统原来的 mission control 的快捷键去掉,然后映射成 control+option+cmd+up
2,把系统原来的 application windows 的快捷键去掉,然后映射成 control+option+cmd+down
1,把Idea的 extend selection的键位,映射成FN+W。
-------------------------- 2016.12.17 更新 -------------------------------
增加了一个方便的操作集合“Control Convenience”。
1,BACKSLASH(\)键+F10~F12键 变成 声音控制键
-------------------------- 2016.12.1 更新 -------------------------------
1,修改“For PC -- IDEA Keymap only”键位,功能没有变,只是把Command + up/down的映射,改成了Command + Shift + up/down。因为在Idea中Command + shiftu+ p/down无法实现“从当前光标到文件头/尾的所有内容选择”功能。原来把Command + up/down映射成了别的键,影响了Idea中的快捷键设置。
-------------------------- 2016.11.24 更新 -------------------------------
1,把“For PC -- IDEA Keymap only”变成了,只有切换到Idea编辑器时才生效的映射。增加功能如下:
(1)把Command+up/down 变成了 Command + fn + left/right。因为在Idea中,Command + up/down 可以到文件头/尾,但再加Shfit一起使用就不好用了。
2,增加了“For PC -- EDITOR Keymap”映射,把Control+Home/End键 和 Home/End 键映射成Windows的用法。这个映射只对定义好的编辑起作用,这里我们定义了两个编辑器Idea(intellij)和text wrangler,想要增加编辑器的,可以EDITOR的<appdef>定义里增加。
-------------------------- 2016.11.23 更新 -------------------------------
1,修改了外接PC键盘的映射,把PC键盘基本映射和Idea编辑器的映射分开了,新加了“For PC -- IDEA Keymap”映射。如果是外接键盘并且使用Idea编辑器的话,建议把这个也选上。
2,修改了Idea编辑器的光标定到文件头和文件尾的映射。原来的设置的映射不好用。
内容请看原文的中代码。
-------------------------- 2016.11.22 更新 -------------------------------
增加功能:增加了外接键盘的映射,名字为:PC Keybooard(87)。为87键键盘做的映射,功能如下:
1, <!— 把option键command互换 —>
2, <!— 把Insert键变成Capslock键 —>
<!— 因为在programmer keymap 里把Capslock和Fn互换了,外接键盘没有Fn,所以把Insert映射成了Fn —>
3, <!— 把Control+Home/End键 映射成 文章开始或结尾 —>
4, <!— 把Mac的Home/End键 变成 Windows的Home/End —>
<!— 把Mac的Home键(插入键盘就有的,是Window中的Control+Home)功能是 Windows的Control+Home的功能:到文章的最开始 —>
<!— 把Windows的Home键的功能:到行首 —>
<!— --------------- 注意:这个映射必须在 “把Control+Home/End键 映射成 文章开始或结尾” 下面,----------- —>
<!— --------------- 要不然“把Control+Home/End键 映射成 文章开始或结尾”会不好用----------- —>
使用方法:
方法1,可以在外接键盘时,在Karabiner Preference的Change Key选项卡里,选择programmer keycap和For PC -- Keybooard(87)这两个项目。
方法2,可以定义一个Karabiner Preference的Profile里新增加一个Profile,我命名为“PC Keybooard(87)”,在Mac桌面的左上角选择新定义的Profile后,再点Karabiner Preference的Change Key选项卡,选择那两个定义的Keymap。这样,可能通过选择Profile来换映射了。
---------------------- 原文 -----------------------
前一段j时间使用Windows总结了一个Windows的键位Remap资料。现在改用Mac后,由于以前使用那套键位太爽了,所以在Mac上也弄了一套。
方法如下:
1,使用Mac自己的功能,把Capslock键设置成为“无效”。方法如下:
系统编好设置 -> 键盘 -> 在“键盘”选项卡里,选择左下角的“修饰键” -> 选择“Capslock键的”下拉菜单,选择无操作
2,下载Seil,把Capslock键设置成F19的Code(80)。如果你想映射成其它不存在的键也可以,在软件的下面有键相对应的code。
(Mac上的Capslockwu键位的映射不好弄,所以用Seil软件来设置一下这个键。)
3,下载Karabiner,安装完后需要设置一下,要不然无法使用。设置过程请参看:https://pqrs.org/osx/karabiner/document.html
启动后,它会出现在屏幕的右上角,有一个四方框,点击它,然后选择“Perferences” -> “Misc & Uninstall”选项卡 -> “open private.xml”,然后会出现finder,里面有一个private.xml。这个文件是我们自定义键存放的地方。用文本编辑器打开它,然后把下面的代码复制进去。具体代码的功能:
<!— 把FN键和CapsLock键互换 —>
<!— 把 FN +ikjl键变成上下左右键 —>
<!— 把 FN + Y/H/U/O键 变成PageUp/PageDown/Home/End键 —>
<!— 把 FN + 8/9键变成 OPTION+左/右 —>
<!— 把 FN + M/,/. 键变成 前删除/后删除/回车键 —>
<!— 把 右FN + cvxfsd 变成 command + cvxfsd —>
<!— 把 右SHFIT + 上下左右 变成PageUp/PageDown/Home/End —>
-------------------------- 2016.11.22 更新 -------------------------------
具体代码如下(private.xml):
<?xml version="1.0"?>
<root>
<!- 编辑器软件名字定义 ->
<appdef>
<!-- 软件名字定义 开始 ================================== -->
<!-- 取得软件名字命令:osascript -e 'id of app "iTerm2"' -->
<!- 定义Editor软件 ->
<appname>EDITOR</appname>
<equal>com.jetbrains.intellij</equal>
<!- 定义TEXTWRANGLER软件 ->
<equal>com.barebones.textwrangler</equal>
<!- 定义sublimetext2软件 ->
<equal>com.sublimetext.2</equal>
<!- 定义sublimetext3软件 ->
<equal>com.sublimetext.3</equal>
</appdef>
<!- Idea软件名字定义 ->
<appdef>
<appname>IDEA</appname>
<equal>com.jetbrains.intellij</equal>
</appdef>
<!- iTerm2软件名字定义 ->
<appdef>
<appname>iTerm2</appname>
<equal>com.googlecode.iterm2</equal>
</appdef>
<!-- 软件名字定义 结束 ================================== -->
<!-- 针对不同软件的定义 结束 ================================== -->
<!-- (这种定义必须在“共通定义”的最上面。当映射冲突时,上面的映射有效) -->
<!— 为IDEA编辑器做的映射(只有在IDEA编辑器中才好用) —>
<!- 注意:这个功能映射要在 FN +ikjl 上面,不然这里面的 FN + I/K + Shift + Command 映射不好用 ->
<item>
<name>IDEA Keymap only</name>
<identifier>private.idea</identifier>
<only>IDEA</only>
<!- 把Command+up/down 变成了 Command + fn + left/right。因为在Idea中,Command + up/down 可以到文件头/尾,但再加Shfit一起使用就不好用了。 ->
<autogen>
__KeyToKey__
KeyCode::CURSOR_UP, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, ModifierFlag::FN, ModifierFlag::SHIFT_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::CURSOR_DOWN, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, ModifierFlag::FN, ModifierFlag::SHIFT_L
</autogen>
<!- 在Idea中,使用 FN + I/K + Shift + Command,来做向下全选时,不好用。下面的映射使这个功能好用 ->
<!- 注意:这个功能映射要在 FN +ikjl 上面 ->
<autogen>
__KeyToKey__
KeyCode::I, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L, ModifierFlag:: FN,
KeyCode::END, ModifierFlag::COMMAND_L, ModifierFlag::FN, ModifierFlag::SHIFT_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::K, ModifierFlag::COMMAND_L, ModifierFlag::SHIFT_L, ModifierFlag:: FN,
KeyCode::END, ModifierFlag::COMMAND_L, ModifierFlag::FN, ModifierFlag::SHIFT_L
</autogen>
<!- 把Control+W 映射成 FN+W。 ->
<autogen>
__KeyToKey__
KeyCode::W, ModifierFlag:: FN,
KeyCode::W, ModifierFlag::CONTROL_L
</autogen>
</item>
<item>
<name>iTerm2 Keymap only</name>
<identifier>private.iterm2</identifier>
<only>iTerm2</only>
<!- 把 fn + p/; 映射成 Home/End 单个键。如果不做软件内单独映射,使用共通的映射的话, fn + p/; 变成tab切换 ->
<autogen>
__KeyToKey__
KeyCode::P, ModifierFlag:: FN,
KeyCode::HOME
</autogen>
<autogen>
__KeyToKey__
KeyCode::SEMICOLON, ModifierFlag:: FN,
KeyCode::END
</autogen>
</item>
<!-- 针对不同软件的定义 结束 ================================== -->
<item>
<name>programmer keymap</name>
<identifier>private.programmer.keymap</identifier>
<!— 把FN键和CapsLock键互换 —>
<!— 1, 首先通过系统设置,把Capslock键无效 —>
<!— 2, 首先需要通过seil,把Capslock键设置成F19 —>
<!— 3, 再通过下面的两行代码把F19映射成FN,再把FN映射Capslock —>
<autogen>__KeyOverlaidModifier__ KeyCode::F19, KeyCode::FN, KeyCode::CAPSLOCK</autogen>
<!— 把 FN +ikjl键变成上下左右键 —>
<autogen>
__KeyToKey__
KeyCode::I, ModifierFlag:: FN,
KeyCode:: CURSOR_UP
</autogen>
<autogen>
__KeyToKey__
KeyCode::J, ModifierFlag:: FN,
KeyCode:: CURSOR_LEFT
</autogen>
<autogen>
__KeyToKey__
KeyCode::K, ModifierFlag:: FN,
KeyCode:: CURSOR_DOWN
</autogen>
<autogen>
__KeyToKey__
KeyCode::L, ModifierFlag:: FN,
KeyCode:: CURSOR_RIGHT
</autogen>
<!— 把 FN + Y/H/U/O键 变成PageUp/PageDown/Home/End键 —>
<autogen>
__KeyToKey__
KeyCode::Y, ModifierFlag:: FN,
KeyCode:: CURSOR_UP, ModifierFlag::FN
</autogen>
<autogen>
__KeyToKey__
KeyCode::H, ModifierFlag:: FN,
KeyCode:: CURSOR_DOWN, ModifierFlag::FN
</autogen>
<!--
<autogen>
__KeyToKey__
KeyCode::U, ModifierFlag:: FN,
KeyCode:: CURSOR_LEFT, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::O, ModifierFlag:: FN,
KeyCode:: CURSOR_RIGHT, ModifierFlag::COMMAND_L
</autogen>
-->
<autogen>
__KeyToKey__
KeyCode::U, ModifierFlag:: FN,
KeyCode:: CURSOR_LEFT, ModifierFlag::OPTION_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::O, ModifierFlag:: FN,
KeyCode:: CURSOR_RIGHT, ModifierFlag::OPTION_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::P, ModifierFlag:: FN,
KeyCode:: CURSOR_LEFT, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::SEMICOLON, ModifierFlag:: FN,
KeyCode:: CURSOR_RIGHT, ModifierFlag::COMMAND_L
</autogen>
<!— 把 FN + 8/9键变成 OPTION+左/右 —>
<autogen>
__KeyToKey__
KeyCode::8, ModifierFlag:: FN,
KeyCode:: CURSOR_LEFT, ModifierFlag::OPTION_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::9, ModifierFlag:: FN,
KeyCode:: CURSOR_RIGHT, ModifierFlag::OPTION_L
</autogen>
<!— 把 FN + M/,/. 键变成 前删除/后删除/回车键 —>
<autogen>
__KeyToKey__
KeyCode::M, ModifierFlag:: FN,
KeyCode:: DELETE
</autogen>
<autogen>
__KeyToKey__
KeyCode::COMMA, ModifierFlag:: FN,
KeyCode:: DELETE, ModifierFlag:: FN
</autogen>
<autogen>
__KeyToKey__
KeyCode:: DOT, ModifierFlag:: FN,
KeyCode:: ENTER
</autogen>
<!— 把 FN + [/] 变成 CMD + [/] —>
<autogen>
__KeyToKey__
KeyCode:: BRACKET_LEFT, ModifierFlag:: FN,
KeyCode:: BRACKET_LEFT, ModifierFlag:: COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode:: BRACKET_RIGHT, ModifierFlag:: FN,
KeyCode:: BRACKET_RIGHT, ModifierFlag:: COMMAND_L
</autogen>
<!— 把 FN + cvxfsdbz 变成 command + cvxfsdbz —>
<!— 主要是使用 Idea 时的快捷键 —>
<autogen>
__KeyToKey__
KeyCode::C, ModifierFlag:: FN,
KeyCode::C, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::V, ModifierFlag:: FN,
KeyCode::V, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::X, ModifierFlag:: FN,
KeyCode::X, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::F, ModifierFlag:: FN,
KeyCode::F, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::S, ModifierFlag:: FN,
KeyCode::S, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::D, ModifierFlag:: FN,
KeyCode::D, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::B, ModifierFlag:: FN,
KeyCode::B, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::Z, ModifierFlag:: FN,
KeyCode::Z, ModifierFlag::COMMAND_L
</autogen>
<!— 把 右SHFIT + 上下左右 变成PageUp/PageDown/Home/End —>
<autogen>
__KeyToKey__
KeyCode::CURSOR_UP, ModifierFlag::SHIFT_R,
KeyCode:: CURSOR_UP, ModifierFlag::FN
</autogen>
<autogen>
__KeyToKey__
KeyCode::CURSOR_DOWN, ModifierFlag::SHIFT_R,
KeyCode:: CURSOR_DOWN, ModifierFlag::FN
</autogen>
<autogen>
__KeyToKey__
KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_R,
KeyCode:: CURSOR_UP, ModifierFlag:: COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_R,
KeyCode:: CURSOR_DOWN, ModifierFlag:: COMMAND_L
</autogen>
<!- 把CMD+TAB 映射成 FN+TAB ->
<autogen>
__KeyToKey__
KeyCode::TAB, ModifierFlag:: FN,
KeyCode::TAB, ModifierFlag::COMMAND_L
</autogen>
<!-- 把 mission control 映射成 control+option+cmd+up -->
<!-- 把 application windows 映射成 control+option+cmd+down -->
<autogen>
__KeyToKey__
KeyCode::CURSOR_UP, ModifierFlag::COMMAND_L, ModifierFlag::OPTION_L, ModifierFlag:: CONTROL_L,
KeyCode::EXPOSE_ALL
</autogen>
<autogen>
__KeyToKey__
KeyCode::CURSOR_DOWN, ModifierFlag::COMMAND_L, ModifierFlag::OPTION_L, ModifierFlag:: CONTROL_L,
KeyCode::EXPOSE_ALL, ModifierFlag::CONTROL_L
</autogen>
</item>
<!— 一些方便的操作集合 —>
<!— BACKSLASH(\)键+F10~F12键 变成 声音控制键—>
<item>
<name>Control Convenience</name>
<identifier>private.control.convenience.</identifier>
<autogen>
__KeyOverlaidModifier__
KeyCode::BACKSLASH,
KeyCode::VK_MODIFIER_EXTRA1,
KeyCode::BACKSLASH,
</autogen>
<block>
<modifier_only>ModifierFlag::EXTRA1</modifier_only>
<autogen>
__KeyToKey__
KeyCode::F10,
ConsumerKeyCode::VOLUME_MUTE,
Option::KEYTOKEY_INCREASE_MODIFIER_FLAGS,
ModifierFlag::EXTRA1,
</autogen>
<autogen>
__KeyToKey__
KeyCode::F11,
ConsumerKeyCode::VOLUME_DOWN,
Option::KEYTOKEY_INCREASE_MODIFIER_FLAGS,
ModifierFlag::EXTRA1,
</autogen>
<autogen>
__KeyToKey__
KeyCode::F12,
ConsumerKeyCode::VOLUME_UP,
Option::KEYTOKEY_INCREASE_MODIFIER_FLAGS,
ModifierFlag::EXTRA1,
</autogen>
</block>
</item>
<!— 外接键盘映射设置 —>
<item>
<name>For PC -- Keybooard(87)</name>
<identifier>private.pc.keyboard</identifier>
<!— 把option键command互换 —>
<autogen>
__KeyToKey__
KeyCode::OPTION_L,
KeyCode::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::COMMAND_L,
KeyCode::OPTION_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::OPTION_R,
KeyCode::COMMAND_R
</autogen>
<autogen>
__KeyToKey__
KeyCode::COMMAND_R,
KeyCode::OPTION_R
</autogen>
<!— 把PrintScreen键映射成Power键 —>
<autogen>__KeyToKey__ KeyCode::F13, ConsumerKeyCode::POWER</autogen>
</item>
<!— 为各种编辑器做的映射 —>
<item>
<name>For PC -- EDITOR Keymap</name>
<identifier>private.pc.editor</identifier>
<only>EDITOR</only>
<!— 把Control+Home/End键 映射成 文章开始或结尾 —>
<autogen>
__KeyToKey__
KeyCode::HOME , ModifierFlag::CONTROL_L,
KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, ModifierFlag::FN
</autogen>
<autogen>
__KeyToKey__
KeyCode::END , ModifierFlag::CONTROL_L,
KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, ModifierFlag::FN
</autogen>
<!— 把Mac的Home/End键 变成 Windows的Home/End —>
<!— 把Mac的Home键(插入键盘就有的,是Window中的Control+Home)功能是 Windows的Control+Home的功能:到文章的最开始 —>
<!— 把Windows的Home键的功能:到行首 —>
<!— --------------- 注意:这个映射必须在 “把Control+Home/End键 映射成 文章开始或结尾” 下面,----------- —>
<!— --------------- 要不然“把Control+Home/End键 映射成 文章开始或结尾”会不好用----------- —>
<autogen>
__KeyToKey__
KeyCode::HOME,
KeyCode:: CURSOR_LEFT, ModifierFlag::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::END,
KeyCode:: CURSOR_RIGHT, ModifierFlag::COMMAND_L
</autogen>
<!- 把Control+W 映射成 FN+W。 ->
<autogen>
__KeyToKey__
KeyCode::W, ModifierFlag:: FN,
KeyCode::W, ModifierFlag::CONTROL_L
</autogen>
</item>
<!-- 当想把HKIL的方向,换成JKLI时,把这个打开 -->
<item>
<name>Change Direction HJKL to IKJL</name>
<identifier>private.change.hjkl.to.IKJL</identifier>
<replacementdef>
<replacementname>VI_H</replacementname>
<replacementvalue>KeyCode::J</replacementvalue>
</replacementdef>
<replacementdef>
<replacementname>VI_J</replacementname>
<replacementvalue>KeyCode::K</replacementvalue>
</replacementdef>
<replacementdef>
<replacementname>VI_K</replacementname>
<replacementvalue>KeyCode::I</replacementvalue>
</replacementdef>
<replacementdef>
<replacementname>VI_L</replacementname>
<replacementvalue>KeyCode::L</replacementvalue>
</replacementdef>
</item>
</root>
参考:http://apple.stackexchange.com/questions/114856/change-caps-lock-key-to-fn-key