我通常使用制表符编写代码,但许多 python 库使用空格。 Notepad++ 有什么方法可以自动检测文件的格式,并在文件已经格式化后自动切换到使用空格?
顺便说一句,我知道已经有一个 SO question关于如何更改 Notepad++ 的标签格式。但如果它根据当前文件的格式自动更改会更好。
最佳答案
如果您安装了 Notepad++ 的“Python 脚本”插件,您可以编写代码来自动在制表符和空格之间切换。
方法如下:
在菜单中:Plugins -> Python Script -> Configuration,并将 Initialization 设置为 ATSTARTUP。当 Notepad++ 启动时,
startup.py
脚本将运行。找到
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])
这只是一个例子,你可以自己改进guess_tab()
,也许可以使用全局字典来缓存结果并加速回调函数。
关于python - Notepad++ 自动检测 Python 制表符或空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986194/