2010-10-15 32 views
14

mon autoindent ne fonctionne pas, des tests de diagnostic pour le comprendre?vim: autoindent ne fonctionne pas

mon ": set" est:

: set --- --- options cindent laststatus = 2 = 17 scroll
tabstop = 4 = 36
filetype = nombre de cpp
smartindent ttyfast
helplang = en pâte
syntaxe = cpp ttymouse = xterm2
backspace = tiret, eol, démarrer
fileencoding = utf-8
fileencodings = UCS-bom, utf-8, par défaut, latin1 printoptions = papier: lettre
runtimepath = ~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/af ter,/var/lib/vim/addons/après, ~/.vim/après suffixes = .bak, ~, .swp, .o .INFO, .aux, .log, .dvi, .bbl, .blg, .brf, .cb, .ind, .idx, .ilg, .inx, .out, .toc

+1

J'ai remarqué que je devais taper: régler l'autoindent manuellement pour que cela fonctionne. Je me demande comment cela n'est pas automatiquement inclus, car il est dans mon .vimrc – l7ecl

+0

est-il pas de réponse acceptée pour cette question? –

Répondre

2

est ici un façon de tester si vous avez la configuration correcte, puis persistez votre configuration afin que Vim fonctionne toujours de cette manière. This font indique le texte qui doit être saisi littéralement, sauf <CR> signifie appuyer sur la touche "Entrée" ou "Retour".

  • Créez un nouvel utilisateur système, avec un nouveau répertoire de base.
  • Démarrer Vim. Tous les paramètres doivent être définis, mais ils sont fournis avec Vim par défaut.
  • Ouvrez un fichier, par exemple, test.txt.
  • Assurez-vous autoindent est activé (:set ai?<CR>)
  • Prouver que autoindent ne se produit pas:
    • Tapez un espace ou deux, puis appuyez sur Entrée.
    • Lorsque le curseur passe à la ligne suivante, il doit retourner à la colonne 1, la colonne la plus à gauche.
  • Allumez autoindent (:set ai<CR>)
  • Assurez-vous autoindent est activé (:set ai?<CR>)
  • Prouver que autoindent arrive:
    • Tapez un espace ou deux, puis appuyez sur Entrée.
    • Lorsque le curseur passe à la ligne suivante, il doit toujours se trouver dans la même colonne.
  • Autoindent de persistance avec :mkvimrc<CR>.

Espérons que ça aide! Voici quelques autres notes:

  • Ces instructions peuvent être spécifiques aux environnements locaux de gauche à droite.
  • Here's my vimrc
7

Vous devriez probablement éteindre smartindent et utiliser :filetype indent on et cindent (qui semble être également mis) à la place.

+0

Cela a fonctionné pour moi ... merci! – Vikram

8

essayer:

:set ai 

ou:

:set autoindent 

En savoir plus sur l'auto-tiret:

:h ai 

Sinon, il est peut-être quelque chose avec la détection du type de fichier.

+1

Cela a fonctionné pour moi pour les fichiers '.tex'. Peut-être en combinaison avec la réponse de @benoit (qui n'a pas fonctionné au début) – polym

1

Dans le cas où quelqu'un d'autre face au même problème, j'ai eu un problème similaire qu'aucun des éléments ci-dessus fixé. Ce qui n'allait pas pour moi, c'était l'interprétation des tabulations. voici la mise en place qui a fait fonctionner:

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

Et pour vérifier si indentation si le retrait était correct, j'ajouté ce qui suit, encore dans mon fichier vimrc:

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

qui affiche un " »" Au lieu du "" habituel si mon indentation est fausse. Très utile. Hope it helps.

+1

Cela fonctionne pour moi. Thx – goFrendiAsgard

6

J'ai eu le même problème et ces paramètres l'ont corrigé.

filetype on 
filetype plugin on 
filetype indent on 
+0

J'ai ajouté une seule ligne pour ceci à mon ~/.vimrc: 'filetype plugin indent on' –

0

J'ai eu le même problème, et j'ai essayé de nombreuses commandes, toutes ont échoué.
Enfin, j'utilise la commande suivante, et cela fonctionne:
autocmd VimEnter * set autoindent
Ce n'est pas une méthode élégante, cependant, cela fonctionne.

0

J'ai eu une fonction périmée dans indentexpr qui a persisté après avoir changé le type de fichier. Cela m'a finalement permis de le résoudre:

:set indentexpr=