Notepad ++自动检测Python选项卡或空格

spe*_*ane 6 python tabs notepad++

我通常使用制表符编写代码,但许多python库使用空格.Notepad ++是否有任何方法可以自动检测文件的格式,并在文件已经格式化时自动切换到使用空格?

顺便说一句,我知道如何改变Notepad ++的标签格式已经有了一个问题.但如果它根据当前文件的格式自动更改会更好.

HYR*_*YRY 6

如果为Notepad ++安装"Python Script"插件,则可以编写代码以自动在选项卡和空格之间切换.

这是如何做:

  1. 在菜单中:插件 - > Python脚本 - >配置,并将初始化设置为ATSTARTUP.当Notepad ++启动时,startup.py脚本将运行.

  2. 查找startup.py并编辑它.在我的电脑上它的路径是 c:\Program Files\Notepad++\plugins\PythonScript\scripts\startup.py,添加以下代码startup.py.

buffer_active()每次切换制表符时都会调用该函数,并guess_tab()检查文本是否使用制表符缩进.您可以显示Python控制台以调试代码.

def guess_tab(text):
    count = 0
    for line in text.split("\n"):
        indents = line[:len(line)-len(line.lstrip())]
        if "\t" in indents:
            count += 1
    if count > 5: 
        return True
    else:
        return False

def buffer_active(arg):
    editor.setBackSpaceUnIndents(True)
    use_tab = guess_tab(editor.getText())
    editor.setUseTabs(use_tab)
    sys.stderr.write( "setUseTabs %s\n" % use_tab )

notepad.clearCallbacks([NOTIFICATION.BUFFERACTIVATED])    
notepad.callback(buffer_active, [NOTIFICATION.BUFFERACTIVATED])
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,随意guess_tab()自己做得更好,可能使用全局字典来缓存结果并加速回调函数.