I like to indent code using spaces, but sometimes I want to insert a literal TAB character in the middle of the line. Is there some way to configure Sublime for this behaviour?
The only way I know of is to turn off “translate spaces to tabs”, hit tab, then turn it back on. If you really wanted you could write a plugin to run these three steps in sequence.
Looking at the default settings you’ll find the following entry:
// By default, shift+tab will only unindent if the selection spans // multiple lines. When pressing shift+tab at other times, it'll insert a // tab character - this allows tabs to be inserted when tab_completion is // enabled. Set this to true to make shift+tab always unindent, instead of // inserting tabs. "shift_tab_unindent": false,
Unfortunately the tab that shift+tab inserts is still translated to spaces like any other tab.
If @adzenith 's advice works (I didn’t test it), it should be very easy to create a macro with the three commands (rather than messing with python, if you don’t want to), which you can then invoke by a keybinding, menu item or command in the palette.
Hope this helps,
What I end up doing in these cases, where I don’t want to be bothered with toggling the setting, is to insert some odd character (like a backtick) into the doc where I want tabs, and then do a find/replace, replacing the backtick with \t (regex tab). This allows me to sneak the tab(s) in there.
What about adding a keybinding that inserts the snippet “\t”?
I use spaces for indentation, but I occasionally use the ElasticTabstops plugin to format tables of data.
So I’d like the Tab key to enter spaces at the beginning of the line, but a literal tab when used in the middle of a line of text.
Has anybody written a plugin to do this?
6 years later the recipe is emerged (at least for Windows, ST4).
- (Indent Using Spaces initially enabled) enter the sequence (4 keys)
Alt, v, i, i
- this will disable Indent Using Spaces
- Input tab characters using
- Reenable Indent Using Spaces by entering the same sequence again (
Alt, v, i, i)