Dans VIM c'est possible, je viens d'essayer, à condition d'utiliser les options
:set smartindent
:set autoindent
:set copyindent