2010-10-15 16 views
14

mein autoindent funktioniert nicht, irgendwelche diagnostischen Tests, um es herauszufinden?vim: autoindent funktioniert nicht

my ": set" ist:

: gesetzt --- --- Optionen cindent Laststatus = 2 scroll = 17
tabstop = 4 = 36
filetype = CPP Nummer
smartindent ttyfast
helplang = en Paste
syntax = CPP ttymouse = xterm2
Backspace = Gedankenstrich EOL, beginnen
fileencoding = UTF-8-
filencodings = Ucs-bom, Utf-8, Standard, Latin1 printoptions = Papier: Buchstabe
Laufzeitpfad = ~/.vim,/var/lib/vim/Erweiterungen,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/af ter,/var/lib/vim/addons/nach, ~/.vim/nach suffixe = .bak, ~, .swp, .o , .info, .aux, .log, .dvi, .bbl, BLG, .brf, .cb, .ind, IDX, .ilg, .inx, .out, .toc

+1

ich bemerkte, dass ich schreiben muss: Autoindent manuell einstellen, damit es funktioniert. Ich frage mich, warum es nicht automatisch enthalten ist, da es in meinem .vimrc – l7ecl

+0

ist gibt es keine akzeptierte Antwort für diese Frage? –

Antwort

2

Hier ist eine So testen Sie, ob Sie die Konfiguration korrekt haben, dann behalten Sie Ihre Konfiguration bei, damit Vim immer so funktioniert. This font zeigt Text an, der buchstäblich eingegeben werden soll, außer <CR> bedeutet drücken Sie die "Enter" oder "Return" -Taste.

  • Erstellen Sie einen neuen Systembenutzer mit einem neuen Ausgangsverzeichnis.
  • Start Vim. Alle Einstellungen sollten jedoch so eingestellt sein, wie sie standardmäßig mit Vim ausgeliefert werden.
  • Öffnen Sie eine Datei, sagen wir test.txt.
  • Stellen Sie sicher, autoindent aktiviert ist (:set ai?<CR>)
  • Beweisen Sie, dass autoindent nicht passiert:
    • Geben Sie ein Leerzeichen oder zwei, dann die Eingabetaste drücken.
    • Wenn der Cursor zur nächsten Zeile springt, sollte er zur Spalte 1, der ganz linken Spalte, zurückkehren.
  • Schalten Sie autoindent (:set ai<CR>)
  • Stellen Sie sicher, autoindent aktiviert ist (:set ai?<CR>)
  • Beweisen Sie, dass autoindent passiert:
    • Geben Sie ein Leerzeichen oder zwei, dann die Eingabetaste drücken.
    • Wenn der Cursor zur nächsten Zeile springt, sollte er immer noch in derselben Spalte sein.
  • Persist Autoindent mit :mkvimrc<CR>.

Hoffe, dass hilft! Hier einige weitere Hinweise:

  • Diese Anweisungen beziehen sich möglicherweise auf Links-nach-Rechts-Ländereinstellungen.
  • Here's my vimrc
7

Sie sollten wahrscheinlich smartindent ausschalten und mit :filetype indent on und cindent (die auch eingestellt zu sein scheint) statt.

+0

Das hat bei mir funktioniert ... Danke! – Vikram

8

Versuch:

:set ai 

oder:

:set autoindent 

mehr über Auto-Einzug finden:

:h ai 

Ansonsten ist es etwas mit der Dateityperkennung sein könnte.

+1

Dies funktionierte für mich für '.tex' Dateien. Vielleicht in Kombination mit der Antwort von @benoit (die zuerst nicht funktionierte) – polym

1

Falls jemand anderes das gleiche Problem hat, hatte ich ein ähnliches Problem, dass keiner der oben genannten behoben. Was für mich falsch war, war die Tab-Interpretationen. hier ist die Einrichtung, die es ermög arbeiten:

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

Und zu überprüfen, wenn einrücken, wenn die Einbuchtung korrekt war, habe ich die folgende, noch in meiner vimrc:

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

die eine Anzeige " »" Anstelle des regulären "·" wenn mein Einzug falsch ist. Sehr praktisch. Hoffe es hilft.

+1

Das funktioniert für mich. Thx – goFrendiAsgard

6

Ich hatte das gleiche Problem und diese Einstellungen behoben.

filetype on 
filetype plugin on 
filetype indent on 
+0

Ich habe eine einzelne Zeile für meine ~/.vimrc: 'Dateityp Plugin Einzug auf' hinzugefügt –

0

Ich hatte das gleiche Problem, und ich habe viele Befehle versucht, alle fehlgeschlagen.
Endlich verwende ich den folgenden Befehl, und es funktioniert:
autocmd VimEnter * set autoindent
Es ist keine elegante Methode, aber es funktioniert.

0

Ich hatte eine veraltete Funktion in indentexpr, die nach dem Ändern des Dateityps beibehalten wurde. Dieses reparierte es schließlich für mich:

:set indentexpr=