Xcode块(NSMallocBlock)缩进(从新行自动开始的大括号)

OlD*_*Dor 5 xcode objective-c indentation objective-c-blocks

我想打开带有大括号的块,从新行开始.

让我们摆脱对这是否是一个好决定的哲学讨论 - regardless of 'where' and 'when', 'how' remains absolute.

所以,问题描述如下:

在此输入图像描述

有没有办法实现这个目标?


我四处寻找,但我找不到任何解决方案.

我已经意识到这样的事情:

  1. Snippet Edit - 这个小程序将允许编辑默认Xcode的代码片段.所以,你将能够从新行开括号你if,for,while,等.然而,这不允许改变块缩进.

  2. Uncrustify - 这可能解决我的问题,但它看起来不容易设置.它只在代码编写完成后才格式化,而不是"随时随地"格式化.此外,即使我设置uncrustify正确,它仍然会很慢 - 格式化块需要大约4次鼠标点击,这是耗时的.

有人知道其他任何解决方案吗?

编辑:

更具体地说,我希望在按下此步骤后立即缩进块ENTER:

在此输入图像描述

OlD*_*Dor 0

我发现的最简单的解决方案是:

\n\n

下载Karabiner并更改您的private.xml(您也可以在此处查看文档)

\n\n

你的private.xml可能看起来像这样:

\n\n
<?xml version="1.0"?>\n<root>\n    <item>\n        <name>Command+Enter to complete single block</name>\n        <identifier>private.swap_cmnd+Enter_to_complete__single_block</identifier>\n        <autogen>\n            __KeyToKey__\n            KeyCode::RETURN, ModifierFlag::COMMAND_L | ModifierFlag::NONE,\n            KeyCode::RETURN,\n\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,\n            KeyCode::DELETE, ModifierFlag::COMMAND_L,\n            KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L,\n            KeyCode::BRACKET_RIGHT,\n            KeyCode::SEMICOLON,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,\n            KeyCode::CURSOR_LEFT,\n            KeyCode::RETURN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,\n\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n\n            KeyCode::I, ModifierFlag::CONTROL_L,\n            KeyCode::CURSOR_RIGHT,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_L,\n            KeyCode::TAB,\n        </autogen>\n    </item>\n\n    <item>\n        <name>Option+Enter to complete double block</name>\n        <identifier>private.swap_Option+Enter_to_complete_double_block</identifier>\n        <autogen>\n            __KeyToKey__\n            KeyCode::RETURN, ModifierFlag::OPTION_L | ModifierFlag::NONE,\n            KeyCode::CURSOR_RIGHT,\n            KeyCode::RETURN,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L,\n            KeyCode::TAB,\n\n            KeyCode::RETURN,\n\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L,\n            KeyCode::TAB,\n            KeyCode::RETURN,\n            KeyCode::DELETE,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,\n            KeyCode::DELETE, ModifierFlag::COMMAND_L,\n            KeyCode::BRACKET_RIGHT, ModifierFlag::SHIFT_L,\n            KeyCode::BRACKET_RIGHT,\n            KeyCode::SEMICOLON,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,\n            KeyCode::CURSOR_LEFT,\n            KeyCode::RETURN,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,\n            KeyCode::CURSOR_LEFT,\n            KeyCode::RETURN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_DOWN,\n            KeyCode::CURSOR_RIGHT, ModifierFlag::COMMAND_L,\n\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n            KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L,\n\n            KeyCode::I, ModifierFlag::CONTROL_L,\n            KeyCode::CURSOR_RIGHT,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_UP,\n            KeyCode::CURSOR_LEFT, ModifierFlag::COMMAND_L,\n            KeyCode::TAB,\n        </autogen>\n    </item>\n</root>\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x8c\x98完成此操作后,您现在可以通过按+打开块ENTER而不是ENTER,打开块时按\xe2\x8c\x98+ ENTER)。这是预览(放慢速度,以便您看到细节)。

\n\n

以上仅适用于单个块。如果你想一次打开两个区块,你可以按ALT+ ENTER。这是预览(放慢速度,以便您看到细节)。

\n\n

这是实际速度的预览:

\n\n

演示 CountPages alpha

\n