Chcesz u偶ywa膰 klawisza Tab w Vim, aby zast臋powa膰 2, 4 lub 8 spacji za znak tabulacji (t)? Przyjrzyjmy si臋 konfiguracjom, kt贸re musz膮 by膰 dokonane, aby to osi膮gn膮膰:
:set expandtab - Gdy naci艣niesz klawisz Tab, zostanie wstawiona odpowiednia liczba spacji zamiast znaku tabulacji (t). Je艣li jest wy艂膮czona (:set noexpandtab), wci艣ni臋cie klawisza Tab skutkuje wstawieniem znak贸w tabulacji zamiast spacji. Gdy jest w艂膮czona, ustawienia tabstop i softtabstop (om贸wione poni偶ej) okre艣laj膮 szeroko艣膰 (liczb臋 spacji do wstawienia zamiast znaku t) charakteru, a nie to, czy znak tabulacji (t) jest w艂膮czony czy wy艂膮czony.
:set shiftwidth=2 - Parametr shiftwidth okre艣la, ile spacji zostanie automatycznie wstawionych dla wci臋cia, wi臋c gdy naci艣niesz Enter, aby przej艣膰 do nast臋pnej linii, mo偶esz zak艂ada膰, 偶e b臋dzie ona wci臋ta (z wstawion膮 jedn膮 lub wi臋cej tabulacjami). W tym przypadku b臋dzie to wci臋cie 2-spacyjne.
:set tabstop=2 - Gdy expandtab jest w艂膮czone, ustawienie tabstop okre艣la, jak szeroki b臋dzie znak tabulacji (t) i ile znak贸w spacji zostanie wstawionych. Je艣li expandtab jest w艂膮czone, za ka偶dym razem, gdy naci艣niesz klawisz Tab, zostan膮 dodane 2 spacje.
:set softtabstop=2 - Gdy naci艣niesz klawisz Tab, ustawienie softtabstop wstawia podan膮 liczb臋 spacji. Podobne do tabstop pod wieloma wzgl臋dami, ale z kilkoma zastrze偶eniami:
Dla uderze艅 klawisza Tab, jego warto艣膰 w pewnym sensie zast臋puje warto艣膰 ustawienia tabstop.
Gdy u偶ywasz klawisza Backspace, usuwa on r贸wnie偶 t臋 sam膮 liczb臋 spacji. To jest potrzebne!
Nawet je艣li ustawione jest set:noexpandtab, kt贸re ma wstawia膰 znak tabulacji (t) po naci艣ni臋ciu klawisza Tab, nadal b臋d膮 wstawiane spacje.
Gdy przyjmie warto艣膰 0, jest wy艂膮czone, a gdy ma warto艣膰 0, u偶ywane jest shiftwidth jako zamiennik.
Dokumentacja podaje nast臋puj膮ce informacje dla ka偶dego ustawienia:
expandtab - W trybie wstawiania, wstawia “Tab” poprzez u偶ycie wymaganej liczby spacji.
shiftwidth - Liczba spacji do wstawienia pomi臋dzy ka偶dym krokiem (auto)wci臋cia. Wykorzystywane do “cindent”, “>”, “<” itd.
tabstop - Liczba spacji w pliku, jak膮 liczy si臋 za “Tab”.
softtabstop - Ilo艣膰 spacji, jak膮 liczy si臋 za “Tab” podczas wykonywania czynno艣ci edycyjnych, takich jak dodawanie “Tab” lub u偶ywanie “BS”.
Gdy edytor jest otwarty, wykonaj jedno z poni偶szych polece艅:
1
2
3
:setexpandtabshiftwidth=2tabstop=2softtabstop=2" Lub skr贸cona forma:setetsw=2ts=2sts=2
Alternatywnie mo偶esz doda膰 poni偶sze do swojego pliku .vimrc, kt贸ry jest natychmiast 艂adowany przy uruchamianiu Vima:
Ilo艣膰 spacji, kt贸re zostan膮 dodane po naci艣ni臋ciu klawisza tabulacji w powy偶szych przypadkach, zawsze wynosi艂a 2. Mo偶na to zmieni膰 na 4, 8, lub dowoln膮 inn膮 liczb臋, kt贸ra Ci odpowiada.
Tabulatory, kt贸re umie艣cisz po ich skonfigurowaniu, b臋d膮 pod wp艂ywem wszystkich powy偶szych ustawie艅. Co z wci臋ciami z poprzednich tabulator贸w? Chcia艂by艣 r贸wnie偶 zast膮pi膰 je spacjami, prawda? Wystarczy wpisa膰 polecenie :retab, kt贸re zast膮pi wszystkie tabulatory liczb膮 spacji okre艣lon膮 w tabstop.
1
2
3
4
" Je艣li tabstop=4, zast膮p wszystkie tabulatory 4 spacjami:retab" Ustaw tabstop=2, a nast臋pnie zast膮p wszystkie tabulatory 2 spacjami:retab2
W istocie, autoindent nakazuje vim przenosi膰 wci臋cie z bie偶膮cej linii do nast臋pnej. Dzieje si臋 to poprzez naci艣ni臋cie enter w trybie wstawiania lub O albo o w trybie normalnym.
Podczas modyfikowania kodu, smartindent reaguje na sk艂adni臋 i styl (szczeg贸lnie dla C). Musisz r贸wnie偶 w艂膮czy膰 autoindent, gdy jest on aktywny.
:help autointent Autoindent wspomina o dw贸ch innych opcjach: cindent i indentexpr, kt贸re nakazuj膮 vim ignorowa膰 warto艣膰 smartindent.
Comments