All you need probably is calling C-j, not RET There is certain confusion IMO in recent design, as C-j is bound to electric-newline-and-maybe-indent which works as I would expect from newline. On 02.08.19 07:08, Jarosław Rzeszótko wrote: > Perhaps this behavior exists because there can also be a situation > like this: > > def test(): >     print("test") > [cursor, on empty line in middle of indented block] >     print("test") > > where what electric indent does after pressing RET (creates new line > aligned to the print statements) makes sense. I think it is mostly > irritating though, and editors I tested, Vim and Sublime Text, do not > automatically indent in any of the situations I mentioned. > > FWIW this works as a workaround for me: > > (setq electric-indent-functions >       '((lambda (inserted-char) >           (when (eq major-mode 'python-mode) >             ;; Do not auto-indent after inserting any empty line >             (when (save-excursion >                     (previous-line) >                     (beginning-of-line) >                     (looking-at "^\s*$")) >               'no-indent))))) > > Cheers, > Jarek > > On Fri, Aug 2, 2019 at 3:26 AM Noam Postavsky > wrote: > > Andreas Röhler > writes: > > > AFAIU electric-indent-mode doesn't run a timer, cursor position > alone > > would not trigger it. > > electric-indent-mode works from post-self-insert-hook.  Not sure how > cursor position and timers are related. > > >