Если вы установите плагин «Python Script» для Notepad ++, вы можете написать код для автоматического переключения между табуляцией и пробелами.
Вот как:
ВМеню: Плагины -> Python Script -> Конфигурация и установите Инициализация в 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()
лучше, возможно, используйте глобальный dict для кеширования результата и ускорения функции обратного вызова.