shiftwidth multiple indent vim indentation

multiple - Vim Auto Sangría con nueva línea



vim shiftwidth (5)

Descubrí que delimitMate hace exactamente lo que describes y más (es decir, inserta automáticamente la terminación } ). Tenga en cuenta que debe indicar a delimitMate que expanda el retorno de carro al agregar let delimitMate_expand_cr=1 a su configuración.

Desde mi observación, este es exactamente el comportamiento que se encuentra en TextMate y SublimeText.

¿Cómo puedo obtener vim para colocar el cursor dentro de las llaves a partir de una nueva línea, es decir, con | que denota la posición del cursor:

class { | }

ahora mismo con mi configuración solo hace esto

class { |}

Lo tengo en mi archivo .vimrc establecido autoindent shiftwidth = 2 tabstop = 2 noexpandtab

Básicamente solo quiero cómo un IDE normal lo sangraría.

actualizar:

Encontré cómo hacer esto con inoremap { {<CR>}<Esc>O


En la parte inferior del archivo, estoy usando:

# vim: ts=2 sw=2 sts=2 sr noet st ai si

Por ejemplo, Dockerfile :

FROM centos-7 RUN ... CMD ... # vim: ts=2 sw=2 sts=2 sr noet st ai si

Si desea mantener solo la sangría, use # vim: st ai si


Pon esto en tu .vimrc:

imap <C-Return> <CR><CR><C-o>k<Tab>

Suponiendo que autoindent y autoindent están configurados correctamente, al Ctrl + Return entre llaves colocará el cursor donde usted quiere que esté.


Tengo Ubuntu 12.04 y no encontré ningún archivo vimrc en el directorio principal. El archivo global vimrc estaba en /etc/vim/vimrc .
No había casi nada en este archivo. Así que para mí funcionó agregar estas 3 líneas al final de /etc/vim/vimrc

set autoindent set cindent inoremap { {<CR>}<up><end><CR>

Cuando escriba { próxima vez que se cambie por la combinación { , Enter, } , arriba, final, Enter. cindent y autoindent agregarán la cantidad requerida de Tab.
PD. No soy bueno para sintonizar vim, por lo que algunas explicaciones pueden no ser tan precisas. Es como creo que funciona.


autoindent hace referencia a que lleva el nivel de sangría actual a las líneas siguientes. Para obtener una sangría de acuerdo con la sintaxis, debe especificar un indicador como cindent o cindent también.