当我在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个空格。编辑CLARITY:请注意,此行为源于trim_automatic_white_space
和auto_indent
,其默认值为true
。如果按'输入'而且,由于某种原因,你的光标不会缩进,这种情况很奇怪。
如果我想向MyAwesomeClass添加一个新方法,我会将光标定位在B点之前,添加一些空白行,然后在空白行上按下'标签'在A点下方的两行。希望该空白行由默认的tabstop(通常为4个空格)缩进,而不是在my_okay_method 范围内的右边足够远。 (当涉及循环或条件时,这会变得非常严重,因为它会进入方法中的最后一个。)
答案 0 :(得分: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 }
]
}
]