Ve většině případů chci použít tabstop=4
při úpravě souborů. Ale pro některé typy souborů, jako je soubor xml, chci použít tabstop=2
.
Přidal jsem
au filetypedetect FileType xml,html,xhtml,javascript set tabstop=2 softtabstop=2 shiftwidth=2
v mém .vimrc
soubor. Funguje to, pokud upravuji pouze jeden soubor. Ale pokud upravuji více souborů, nemůže správně nastavit zarážky tabulátoru pro všechny vyrovnávací paměti. Zdá se, že typ souboru je detekován a nastaven pouze při spuštění a od té doby se nikdy nezmění.
Chci FileType
nastavit pokaždé, když přepnu vyrovnávací paměť. Jak to mohu udělat?
Přijatá odpověď:
Nejsem si jistý, proč vaše verze nefunguje, ale mohu to udělat pomocí call
a vložení nastavení do funkce, jako je tato:
set tabstop=4
set softtabstop=4
set shiftwidth=4
function! setAltPrefs()
set tabstop=2
set softtabstop=2
set shiftwidth=2
endfunction
autocmd FileType xml,html,xhtml,javascript call setAltPrefs()
To by se mělo spustit pokaždé, když je soubor načten do vyrovnávací paměti nebo se změní typ souboru. Jediný háček by byl, pokud byste vyrovnávací paměť změnili z jednoho z vlastních typů zpět na ten, který by měl být pouze výchozí. V tom případě se nic nezmění. Pokud potřebujete pokrýt tento případ použití, museli byste nastavit jinou funkci, která se spustí u všech typů souborů.