insertar - seleccionar en vim
Espacios de sangrado automático con C en vim? (7)
Simplemente ejecuta:
user@host:~ $ echo set autoindent >> .vimrc
Me he echado a perder un poco usando Eclipse y Java. Empecé a usar vim para hacer la codificación C en un entorno Linux, ¿hay alguna manera de hacer que vim haga automáticamente el espaciado correcto para los bloques?
Entonces, después de tipear a {la próxima línea tendrá 2 espacios sangrados, y un retorno en esa línea lo mantendrá en la misma sangría, y a} retrocederá 2 espacios?
Creo que la mejor respuesta se explica en realidad en el vim wikia:
http://vim.wikia.com/wiki/Indenting_source_code
Tenga en cuenta que desaconseja el uso de "set autoindent". La mejor característica de todo lo que encuentro en esta explicación es que puede establecer configuraciones por archivo, lo que es especialmente útil si programa en Python y C ++, por ejemplo, ya que quiere 4 espacios para pestañas en el primero y 2 para espacios en este último.
Estos dos comandos deberían hacerlo:
:set autoindent
:set cindent
Para obtener puntos de bonificación, colóquelos en un archivo llamado .vimrc ubicado en su directorio de inicio en Linux
Muchas de las funciones de vim (como autoindent
y cindent
) están desactivadas por defecto. Para ver realmente lo que vim puede hacer por usted, necesita un ~/.vimrc
decente.
Un buen $VIMRUNTIME/vimrc_example.vim
está en $VIMRUNTIME/vimrc_example.vim
. Si quieres probarlo, usa
:source $VIMRUNTIME/vimrc_example.vim
cuando en vim.
De hecho, te sugiero copiar los contenidos a tu ~/.vimrc
ya que está bien comentado, y un buen lugar para comenzar a aprender a usar vim. Puedes hacer esto por
:e $VIMRUNTIME/vimrc_example.vim
:w! ~/.vimrc
Esto sobrescribirá tu ~/.vimrc
actual, pero si todo lo que tienes allí es la configuración de sangrado sugerida por Davr, no me cansaría, ya que el vimrc de ejemplo también se encargará de eso. Para obtener una guía completa del ejemplo y lo que hace por usted, consulte :help vimrc-intro
.
Tratar:
establecer sw = 2
establecer ts = 2
establecer smartindent
y siempre recuerda esta venerable explicación de Spaces + Tabs:
Escribí todo sobre las pestañas en vim , lo que da algunas cosas interesantes sobre las que no preguntaste. Para aplicar sangrías automáticamente, use:
:set cindent
Para aplicar sangría a dos espacios (en lugar de una sola pestaña de ocho espacios, el valor predeterminado de vim):
:set shiftwidth=2
Para evitar que vim convierta ocho espacios en pestañas:
:set expandtab
Si alguna vez desea cambiar la sangría de un bloque de texto, use <y>. Usualmente uso esto junto con el modo de selección de bloque (v, seleccione un bloque de texto, <o>).
(Intentaría convencerte de que no uses sangrías de dos espacios, ya que a mí (y a la mayoría de las personas) les resulta difícil leer, pero eso es otra discusión).