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.