PHP文件的不正确的sublime缩进

时间:2017-02-28 13:42:00

标签: php editor sublimetext2 sublimetext3 indentation

我一直在使用自定义快捷方式缩进此帖子Indent multiple lines in Sublime Text中引用的Sublime Text

但是如果有奇数个空格则不起作用。就像我的标签大小设置为2个空格一样,当任何行的开头有3个空格时,它不会缩进剩余的代码。

例如:

<?php

function test_indent() {
  if (condition) {
   echo "here";
  }
   else {
    echo "else";
   }
}

当我使用上面帖子中指定的自定义快捷方式缩进时,即:

{ "keys": ["ctrl+shift+f"], "command": "reindent", "args": {"single_line": false} }

对我而言,结果如下:

function test_indent() {
  if (condition) {
   echo "here";
 }
 else {
  echo "else";
}
}

我需要做些什么才能使其缩进?

1 个答案:

答案 0 :(得分:4)

在玩这个时,我发现如果你完全unindent选择,那么reindent将按预期工作。似乎这是reindent命令中的一个错误,当缩进不是&#34;标签大小&#34;的倍数时发生。这是设定的。

因此,我们可以通过更改您的快捷方式来解决此错误,以完全取消选择,然后再次重新缩进。

Tools菜单中选择Developer - &gt; New Plugin...

选择所有内容并将其替换为以下内容:

import sublime
import sublime_plugin
import re

class UnindentAndReindentCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        while any([sel for sel in self.view.sel() if re.search('^[ \t]+', self.view.substr(sel.cover(self.view.line(sel.begin()))), re.MULTILINE)]):
            self.view.run_command('unindent')
        self.view.run_command('reindent', { 'single_line': False })

将其保存在ST建议的位置,如fix_reindent.py - 文件扩展名很重要,但基本名称不是。

然后,更改您的键绑定以使用我们刚刚创建的新unindent_and_reindent命令:

{ "keys": ["ctrl+shift+f"], "command": "unindent_and_reindent" }

现在它将正确地重新启动您的代码。