2010-10-15 11 views
14

mi autoindent no funciona, ¿alguna prueba de diagnóstico para resolverlo?vim: autoindent no funciona

mi ": conjunto" es:

: set --- --- Opciones cindent LastStatus = 2 desplazamiento = 17
tabstop número 4 = 36 = ventana
filetype = CPP
ttyfast smartindent
helplang = es pegar
sintaxis = ttymouse CPP = xterm2
retroceso = guión, EOL, iniciar
fileEncoding = UTF-8
fileencodings = ucs-bom, utf-8, predeterminado, latin1 printoptions = papel: carta
runtimepath = ~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/af ter,/var/lib/vim/addons/after, ~/.vim/after sufijos = .bak, ~, .swp, .o , .info, .aux, .log, .dvi, .bbl, .blg, .brf, .cb, .ind, .idx, .ilg, .inx, .out, .toc

+1

me di cuenta que tengo que escribir: set autoindent manualmente para que funcione. Me pregunto cómo es que no se incluye automáticamente, ya que está en mi .vimrc – l7ecl

+0

¿No hay una respuesta aceptada para esta pregunta? –

Respuesta

2

Aquí hay uno forma de probar si tiene la configuración correcta, luego persista su configuración para que Vim siempre funcione de esta manera. This font indica texto que debe escribirse literalmente, excepto <CR> significa presionar la tecla "Enter" o "Return".

  • Cree un nuevo usuario del sistema, con un nuevo directorio de inicio.
  • Iniciar Vim. Todas las configuraciones deben establecerse sin embargo, se envían con Vim por defecto.
  • Abra un archivo, por ejemplo, test.txt.
  • Asegúrese de que el sangrado automático está activado (:set ai?<CR>)
  • Demostrar que el sangrado automático no sucede:
    • escribe un espacio o dos, a continuación, pulsa enter.
    • Cuando el cursor avanza a la siguiente línea, debe regresar a la columna 1, la columna de la extrema izquierda.
  • Encienda el sangrado automático (:set ai<CR>)
  • Asegúrese de que el sangrado automático está activado (:set ai?<CR>)
  • Demostrar que ocurre el sangrado automático:
    • escribe un espacio o dos, a continuación, pulsa enter.
    • Cuando el cursor avanza a la línea siguiente, aún debe estar en la misma columna.
  • Persistir autoindent con :mkvimrc<CR>.

Espero que ayude! Aquí hay algunas otras notas:

  • Estas instrucciones pueden ser específicas para configuraciones regionales de izquierda a derecha.
  • Here's my vimrc
7

probablemente debería desactivar smartindent y utilizar :filetype indent on y cindent (que parece estar también configurado) en su lugar.

+0

Esto funcionó para mí ... ¡gracias! – Vikram

8

intento:

:set ai 

o:

:set autoindent 

encontrar más información sobre auto-guión:

:h ai 

lo contrario, es que podría ser algo con detección de tipo de archivo.

+1

Esto funcionó para mí para archivos '.tex'. Tal vez en combinación con la respuesta de @benoit (que no funcionó al principio) – polym

1

En caso de que alguien más tenga el mismo problema, tuve un problema similar al que no se solucionó. Lo que estaba mal para mí eran las interpretaciones de las pestañas. Éste es el conjunto hasta que la hizo funcionar:

set expandtab 
set tabstop=2 
set shiftwidth=2 
set autoindent 
set smartindent 

y para comprobar si sangría si la sangría era correcta, añadí la siguiente, todavía en mi archivo vimrc:

" helper for indent mistake 
set list listchars=tab:»·,trail:· 

que muestran un " »" En vez de "·" regular si mi guión es incorrecto. Muy útil. Espero que ayude.

+1

Esto funciona para mí. Thx – goFrendiAsgard

6

Tuve el mismo problema y esta configuración lo solucionó.

filetype on 
filetype plugin on 
filetype indent on 
+0

Agregué una sola línea para esto a mi ~/.vimrc: 'filetype plugin indent on' –

0

he tenido el mismo problema, y ​​han intentado muchos comandos, todos fallaron.
Por último, utilizo el siguiente comando, y funciona:
autocmd VimEnter * set autoindent
No es un método elegante, sin embargo, funciona.

0

Tenía una función obsoleta en indentexpr que persistió después de cambiar el tipo de archivo. Esto a la larga lo fijó para mí:

:set indentexpr= 
Cuestiones relacionadas