2010-10-15 10 views
14

mój autoindent nie działa, żadnych testów diagnostycznych to rozgryźć?vim: autoindent nie działa

moja ": zestaw" to:

: set --- Opcje --- cindent laststatus = 2 zwój = 17
TabStop liczba = 4 okno = 36
filetype = cpp
smartindent ttyfast
helplang = pl pasty
składni = cpp ttymouse = xterm2
cofania = akapit, EOL, start
fileencoding = UTF-8
fileencodings = UCS-bom, UTF-8, domyślnie, latin1 printoptions = papier: list
runtimepath = ~/.vim,/var/lib/vim/addons/usr/share/vim/vimfiles/usr/udział/vim/vim72/usr/udział/vim/vimfiles/AF ter/var/lib/vim/dodatki/po ~/.vim/po przyrostki = bak, ~ .swp, .o , .info, .aux, .log, .dvi, .bbl, .blg, .brf, .cb, .ind, .idx, .ilg, .inx, .out, .toc

+1

zauważyłem, że muszę wpisać: ustawić autoindent ręcznie, aby zadziałał. Zastanawiam się, w jaki sposób jego nie włącza się automatycznie, ponieważ jest w moim .vimrc – l7ecl

+0

czy nie ma akceptowanej odpowiedzi na to pytanie? –

Odpowiedz

2

Oto jeden sposób na sprawdzenie, czy masz poprawną konfigurację, a następnie kontynuuj konfigurację, aby Vim zawsze działał tak. This font oznacza tekst, który należy wpisać dosłownie, z wyjątkiem <CR> oznacza naciśnięcie klawisza "Enter" lub "Return".

  • Utwórz nowego użytkownika systemu, z nowym katalogiem osobistym.
  • Start Vim. Wszystkie ustawienia powinny być ustawione, jednak domyślnie są dostarczane z Vimem.
  • Otwórz plik, powiedzmy, test.txt.
  • Upewnij autoindent jest włączona (:set ai?<CR>)
  • Udowodnić, że autoindent nie dzieje:
    • Wpisz miejsce lub dwa, a następnie naciśnij enter.
    • Gdy kursor przejście do następnej linii, należy wrócić do kolumny 1, na skrajnej lewej kolumnie.
  • Włącz autoindent (:set ai<CR>)
  • Upewnij autoindent jest włączona (:set ai?<CR>)
  • Udowodnić, że autoindent dzieje:
    • Wpisz miejsce lub dwa, a następnie naciśnij enter.
    • Gdy kursor przejście do następnej linii, powinien być nadal w tej samej kolumnie.
  • Trwałe autoindent z :mkvimrc<CR>.

Nadzieję, że pomaga! Oto kilka innych uwag:

  • Te instrukcje mogą dotyczyć lokalnych ustawień od lewej do prawej.
  • Here's my vimrc
7

należy prawdopodobnie wyłączyć smartindent i używać :filetype indent on i cindent (co wydaje się być również ustawione) zamiast.

+0

To zadziałało dla mnie ... dzięki! – Vikram

8

try:

:set ai 

czyli

:set autoindent 

dowiedzieć się więcej o auto-indent:

:h ai 

W przeciwnym razie, to może być coś z detekcją typu pliku.

+1

To działało dla mnie dla plików '.tex'. Może w połączeniu z odpowiedzią @benoit (która nie zadziałała na początku) – polym

1

W przypadku, gdy ktoś inny zmierzy się z tym samym problemem, miałem podobny problem, który nie został naprawiony. Co było nie tak dla mnie było interpretacje tabulacji. tutaj jest zbiorem się, że robione to działa:

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

i sprawdzić kiedy wcięć, jeśli wcięcie była prawidłowa, dodałem następujące, nadal w moim pliku vimrc:

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

które wykazują " »" Zamiast zwykłego "·" jeśli mój wcięcie jest błędne. Bardzo przydatny. Mam nadzieję, że to pomaga.

+1

To działa dla mnie. Thx – goFrendiAsgard

6

Miałem ten sam problem i te ustawienia go naprawiły.

filetype on 
filetype plugin on 
filetype indent on 
+0

Dodałem pojedynczą linię do mojego ~/.vimrc: 'wcięcia wtyczki typu filetype' –

0

Miałem ten sam problem i próbowałem wielu poleceń, wszystkie nie powiodły się.
Na koniec używam następującego polecenia i działa:
autocmd VimEnter * set autoindent
To nie jest elegancka metoda, jednak działa.

0

Miałem nieaktualną funkcję w indentexpr, która utrzymywała się po zmianie typu pliku. To ostatecznie naprawiło to dla mnie:

:set indentexpr=