W mojej pracy muszę przestrzegać stylu domowego w zakresie wcięć, który wygląda następująco:
- 2 spacje przy kodowaniu html i ruby
- tabs podczas kodowania javascript, z tabwidth = 4 zalecane
Jaki jest najlepszy sposób określenia różnych preferencji białych znaków dla każdego typu pliku?
vim
whitespace
preferences
nelstrom
źródło
źródło
Odpowiedzi:
istnieje wiele sposobów, ale oto prosty, łatwy do zrozumienia sposób. dodaj te linie do swojego
~/.vimrc
:źródło
Odpowiedź Petera jest dość prosta, ale niestety opcje nie są właściwe. Zamiast tego musisz użyć następujących opcji:
Zwróć również uwagę:
:set list
.:retab!
polecenia.źródło
expandtab
zakończeniasts=2
+1 do odpowiedzi Petera, ale Vim zapewnia również inne rozwiązanie. Jeśli chcesz zrobić coś bardziej skomplikowanego niż pojedynczy
setlocal
, na przykład skonfigurować całą gamę opcji, poleceń i mapowań naraz, na ratunek przychodzi funkcja wtyczki typu pliku vima.Musisz mieć
filetype plugin on
lubfiletype plugin indent on
w swoim.vimrc
, a następnie stworzyć wtyczkę do np. Rubiego możesz stworzyć~/.vim/ftplugin/ruby.vim
. Technicznie można używać żadnych poleceń, jak tu, aby uruchomić, gdy plik Ruby jest załadowany, ale rekomendowane te obejmująsetlocal
,map <buffer>
,command -buffer
, i funkcje definiujące. Wiele więcej informacji znajduje się w podręczniku użytkownika; jeśli dobrze znasz skryptowanie vima, przejdź do:help 41.11
, w przeciwnym razie przeczytaj:help usr_40
i:help usr_41
.źródło
Jest też fajny skrypt Vima : DetectIndent, który próbuje wykryć wcięcie pliku, który otwierasz. Jest to bardzo przydatne, jeśli pracujesz z wieloma plikami o różnych stylach kodowania.
Używam autokomendy w moim .vimrc :
źródło
Aby wstawiać spacje po każdym naciśnięciu klawisza tabulatora, ustaw opcję „expandtab”:
Następnym krokiem jest kontrolowanie liczby znaków spacji, które zostaną wstawione po naciśnięciu klawisza tabulacji, ustawienie opcji 'tabstop'. Na przykład, aby wstawić 2 spacje na tabulator, użyj:
ref: http://vim.wikia.com/wiki/Converting_tabs_to_spaces
źródło