If you install the "Python Script" plugin for Notepad ++, you can write code to automatically switch between tabs and spaces.
Here's how:
From the menu: Plugins β Python Script β Configuration and set Initialization to ATSTARTUP. When Notepad ++ starts, startup.py
Script starts.
Find startup.py
and edit it. On my PC, its path is c:\Program Files\Notepad++\plugins\PythonScript\scripts\startup.py
, add the following code to startup.py
.
The buffer_active()
function is called every time you switch the tab, and guess_tab()
checks if the text uses the indent tab or not. You can show the Python console for debugging code.
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])
This is just an example, feel free to make guess_tab()
better than yourself, perhaps use a global dict to cache the result and speed up the callback function.
source share