我想用大括号从新行开始打开 block 。
让我们远离关于这是否是一个好的决定的哲学讨论 -- 不管“哪里”和“何时”,“如何”仍然是绝对的。
所以,问题描述如下:
有什么办法可以实现吗?
找了半天,没找到解决办法。
我已经知道这样的事情:
Snippet Edit -- 这个小程序将允许编辑默认 Xcode 的代码片段。因此,您将能够在
if
、for
、while
等中从新行打开大括号。但是,这不允许更改 block 缩进。Uncrustify -- 这可能会解决我的问题,但看起来并不容易设置。而且它只会在代码编写完成后对其进行格式化,而不是在“进行中”进行格式化。此外,即使我正确设置了
uncrustify
,它仍然会很慢——大约需要点击 4 次鼠标来格式化 block ,这很耗时。
有人知道任何其他解决方案吗?
编辑:
更具体地说,我希望在这一步按下 ENTER
时立即缩进该 block :
最佳答案
我找到的最简单的解决方案是:
下载Karabiner并更改您的 private.xml
(您还可以查看文档 here)
您的 private.xml
可能如下所示:
<?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>
完成此操作后,您现在可以通过按 ⌘
+ENTER
(而不是按 ENTER
,打开区 block 时按⌘
+ENTER
)。这是 preview (放慢速度,以便您看到详细信息)。
以上仅适用于单个 block 。如果你想一次打开两个 block ,你可以按ALT
+ENTER
。这是 preview (放慢速度,以便您看到详细信息)。
这是 preview与实际速度:
关于objective-c - Xcode block (NSMallocBlock) 缩进(大括号自动从新行开始),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35120574/