<?xml version="1.0"?>
<root>
<!- 编辑器软件名字定义 ->
<appdef>
<!-- 软件名字定义 开始 ================================== -->
<!-- 取得软件名字命令:osascript -e 'id of app "iTerm2"' -->
<!- 定义Editor软件 ->
<appname>EDITOR</appname>
<equal></equal>
<!- 定义TEXTWRANGLER软件 ->
<equal></equal>
<!- 定义sublimetext2软件 ->
<equal>.2</equal>
<!- 定义sublimetext3软件 ->
<equal>.3</equal>
</appdef>
<!- Idea软件名字定义 ->
<appdef>
<appname>IDEA</appname>
<equal></equal>
</appdef>
<!- iTerm2软件名字定义 ->
<appdef>
<appname>iTerm2</appname>
<equal>.iterm2</equal>
</appdef>
<!-- 软件名字定义 结束 ================================== -->
<!-- 针对不同软件的定义 结束 ================================== -->
<!-- (这种定义必须在“共通定义”的最上面。当映射冲突时,上面的映射有效) -->
<!— 为IDEA编辑器做的映射(只有在IDEA编辑器中才好用) —>
<!- 注意:这个功能映射要在 FN +ikjl 上面,不然这里面的 FN + I/K + Shift + Command 映射不好用 ->
<item>
<name>IDEA Keymap only</name>
<identifier></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></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>.</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></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></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></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>