The easiest solution I have found is:
Download Karabiner and change your private.xml (you can also view the documentation here )
Your private.xml might look like this:
<?xml version="1.0"?> <root> <item> <name>Command+Enter to complete single block</name> <identifier>private.swap_cmnd+Enter_to_complete__single_block</identifier> <autogen> __KeyToKey__ KeyCode::RETURN, ModifierFlag::COMMAND_L | ModifierFlag::NONE, KeyCode::RETURN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, KeyCode::DELETE, ModifierFlag::COMMAND_L, KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L, KeyCode::BRACKET_RIGHT, KeyCode::SEMICOLON, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_LEFT, KeyCode::RETURN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::I, ModifierFlag::CONTROL_L, KeyCode::CURSOR_RIGHT, KeyCode::CURSOR_UP, KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_L, KeyCode::TAB, </autogen> </item> <item> <name>Option+Enter to complete double block</name> <identifier>private.swap_Option+Enter_to_complete_double_block</identifier> <autogen> __KeyToKey__ KeyCode::RETURN, ModifierFlag::OPTION_L | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, KeyCode::RETURN, KeyCode::CURSOR_UP, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::TAB, KeyCode::RETURN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::TAB, KeyCode::RETURN, KeyCode::DELETE, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, KeyCode::DELETE, ModifierFlag::COMMAND_L, KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L, KeyCode::BRACKET_RIGHT, KeyCode::SEMICOLON, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_LEFT, KeyCode::RETURN, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_LEFT, KeyCode::RETURN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_DOWN, KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L, KeyCode::I, ModifierFlag::CONTROL_L, KeyCode::CURSOR_RIGHT, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_UP, KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L, KeyCode::TAB, </autogen> </item> </root>
After that, you can open the block by pressing β + ENTER ( instead ) press ENTER , when opening the block press β + ENTER ). Here's a preview (slowdown so you can see the details).
The above only works with single blocks. If you want to open two blocks at once, you can press ALT + ENTER . Here's a preview (slowdown so you can see the details).
Here is a preview with actual speed:
