sublime text 3 auto indent tcl和python

时间:2014-07-02 19:26:48

标签: python formatting tcl sublimetext3

我最近开始使用崇高的文字3,我真的很喜欢它。我主要将它用于tcl,python,CMake,脚本(sh,bat),偶尔用MATLAB和一些c ++(我很想用它替换eclipse,但到目前为止我还没有成功)。 ST是我发现的第一个编辑器,它对我使用的所有语言都提供了很好的支持,并且很少有人突出显示并自动完成tcl。但是,我一直有一些自动缩进功能的问题(我喜欢自动缩进,我是一个懒惰的格式化程序......)。对于tcl和python,ST3似乎都是错误的。我的搜索没有引导我找到任何解决方案,所以我在这里问。

我已设置(在用户设置和键盘映射中):

"indent_to_bracket": false,
"translate_tabs_to_spaces": true

{ "keys": ["f12"], "command": "reindent", "args": {"single_line": false} }

这是tcl中的一个例子(好后跟坏)

proc hello { args } {
    set var 0
    if { $var } {
        puts "$var again"
    } {
        puts "NO VAR!"
    }
}
proc helloagain { args } {
    puts "hello again"
}
<\ n>自动注释后:

proc hello { args } {
    set var 0
    if { $var } {
        puts "$var again"
        } {
            puts "NO VAR!"
        }
    }
    proc helloagain { args } {
        puts "hello again"
    }

python:

def hello(number):
    num = int(number)
    if num == 0:
        print "Number is nil!"
    else:
        print "number is "+str(num)
    print "now im quitting"

def hello(number):
    num = int(number)
    if num == 0:
        print "Number is nil!"
    else:
        print "number is "+str(num)
        print "now im quitting"

python自动缩进对我有意义,因为解释器(或自动缩进的任何内容)无法知道if语句何时完成,我一直使用#在python中将缩进设置为正确的位置。但是,这在tcl中不起作用,而且tcl解释器计算注释块(在注释中不能有未关闭的{)。看来自动格式化应该具有正确格式化tcl的必要信息,毕竟我用大括号指定了块的开头和结尾。我知道这个功能很奢侈,但我很乐意让它适用于这些语言。

-Jameson

0 个答案:

没有答案