Sublime text 3粘贴代码时错误地解析缩进

10

我喜欢使用Sublime text,但遇到一个问题:复制代码时出现不一致的问题。我使用tab进行缩进,但复制代码时似乎会将制表符解释为空格,导致缩进出现偏差。

我知道可以通过设置来更改属性,例如tab_sizetranslate_tabs_to_spaces等,但无论如何都无法防止出现这种问题。每当我按下tab键时,它只移动了一个空格,而不是原来预设的4个空格。

问题:

我该如何强制Sublime在创建新文档时仅使用tab进行缩进,并将其设置为4个空格?

2个回答

22

您没有告诉我们您是如何粘贴代码的,所以我认为您是在进行简单的粘贴操作,而不是使用Sublime Text的方式,即通过Shift :。

Sublime的Paste and Indent命令可以自动调整您粘贴的代码缩进,使其匹配周围的行。

该命令绑定到Ctrl+Shift+V(Windows和Linux)或Shift+Cmd+V(Mac)。试试吧--它很神奇。


2
对我没用。它无法根据选项卡宽度设置正确地缩进。 - Amir Asyraf
很难从你的“它不起作用”的报告中判断,但看起来它正按预期工作。 - jwpfox
虽然它可以自动粘贴以匹配周围的代码,但它不会匹配缩进制表宽度。例如:https://i.imgur.com/WbnxuB1.png。红框中的代码是使用制表符宽度为2从其他地方粘贴(ctrl+shift+v)而来,而其他周围的代码则具有制表符宽度为4。我假设如果它实际上起作用,它将与具有制表符宽度为4的代码匹配。 - Amir Asyraf
为了澄清我所说的“匹配周围代码”的意思,使用普通的 ctrl + v,它看起来像这样:https://i.imgur.com/LRmmtH8.png。 - Amir Asyraf
有趣。我相信“空格而非制表符”的思想技术,所以没有遇到这个问题。如果您在粘贴之前将ST选项设置为“制表符转为空格”,您会更顺利吗? - jwpfox
显示剩余2条评论

4

我知道回答已经晚了,但是作为@jwpfox的另一种选择,您可以在键绑定中进行切换,方法如下:

{ "keys": ["super+shift+v"], "command": "paste" },
{ "keys": ["super+v"], "command": "paste_and_indent" },

如果想要默认使用粘贴并缩进功能,可以切换这两个按键绑定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接