如何阻止Sublime Text缩进多个制表位?

问题描述 投票:1回答:1

当我在Sublime Text中有一个缩进的文本块,并且在它下面有空行时,按Tab键将缩进到该块的级别。

每次发生这种情况时我仍会感到惊讶,所以我想把它关掉。我想手动将空行缩进到所需的级别。目前,我经常需要按Tab键一次,然后按一下次数命中退格键,这取决于前面方法的嵌套程度。

到目前为止,我已经尝试将auto_indent设置为false。这确实会阻止行为......以及与自动缩进相关的所有其他内容。我想要更具针对性的东西。

我也尝试过将smart_indent设置为false。这对我迄今为止尝试过的案件没有任何影响;它仍会缩进多个制表位。

试图整理一个示例案例。代码的质量并不重要,只有几何。

class MyAwesomeClass:

    def my_okay_method(self):
        print(self)  # point A

# point B

假装评论不存在,它们仅供参考。

如果我想添加my_okay_method的行为,我会将光标定位在A点的行尾,然后按“回车”键。我希望我的光标最终会在下一个新添加的行上结束,该行应该缩进8个空格。编辑清晰度:请注意,此行为源于trim_automatic_white_spaceauto_indent的默认值为true。如果按“输入”,由于某种原因,光标不会缩进,会发生奇怪的事情。

如果我想向MyAwesomeClass添加一个新方法,我会将光标定位在B点之前,添加一些空白行,然后在空白行上按下'tab',在A点下面两行。我希望该空白行缩进默认的tabstop(通常是4个空格),而不是足够远,它位于my_okay_method的范围内。 (当涉及循环或条件时,这会变得非常严重,因为它会进入方法中的最后一个。)

sublimetext3 sublimetext
1个回答
0
投票

我创建了以下keymap,并将其保存到User / Default.sublime-keymap。到目前为止,它似乎正好在我想要的地方工作。

编辑:我将其更改为专门禁用默认键映射的相关映射。

[
    { "keys": ["tab"], "command": "insert", "args": {"characters": "\t"}, "context":
        [
            { "key": "setting.auto_indent", "operator": "equal", "operand": true },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "preceding_text", "operator": "regex_match", "operand": "^$", "match_all": true },
            { "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true }
        ]
    }
]
© www.soinside.com 2019 - 2024. All rights reserved.