163 Stimmen

Vim-Whitespace-Einstellungen nach Dateityp setzen

Bei meiner Arbeit muss ich den Hausstil für die Einrückung befolgen, der wie folgt lautet:

  • 2 Leerzeichen bei der Codierung von html und ruby
  • Tabs bei der Programmierung von Javascript, mit tabwidth=4 empfohlen

Wie kann ich am besten unterschiedliche Leerraumpräferenzen für jeden Dateityp festlegen?

1 Stimmen

0 Stimmen

All diese Antworten haben mich nur noch mehr verwirrt. Das Problem ist, dass die Optionen je nach Vorliebe gewählt werden. Die akzeptierte Antwort hat jedoch eine schöne Syntax. Dies war ein ausgezeichneter Leitfaden: vimcasts.org/transcripts/2/de

259voto

Peter Punkte 120325

Es gibt viele Möglichkeiten, aber hier ist eine einfache, leicht zu verstehende Methode: Fügen Sie diese Zeilen in Ihre ~/.vimrc :

autocmd FileType html setlocal ts=2 sts=2 sw=2
autocmd FileType ruby setlocal ts=2 sts=2 sw=2
autocmd FileType javascript setlocal ts=4 sts=4 sw=4

91voto

too much php Punkte 85034

Die Antwort von Peter ist einfach genug, aber leider sind die Optionen nicht richtig. Sie müssen stattdessen die folgenden Optionen verwenden:

autocmd Filetype html setlocal ts=2 sw=2 expandtab
autocmd Filetype ruby setlocal ts=2 sw=2 expandtab
autocmd Filetype javascript setlocal ts=4 sw=4 sts=0 noexpandtab

Beachten Sie auch:

  • Sie können vim dazu bringen, Tabulatorzeichen anzuzeigen, indem Sie :set list .
  • Sobald Sie die Tabulator-/Leerzeichen-Optionen richtig eingestellt haben, können Sie vim veranlassen, die Datei zu reparieren (Leerzeichen durch Tabulatoren zu ersetzen oder umgekehrt), indem Sie die :retab! Befehl.

38voto

hobbs Punkte 204816

+1 zu Peters Antwort, aber Vim bietet auch eine andere Lösung. Wenn Sie etwas Komplizierteres tun wollen als eine einzelne setlocal Wenn Sie eine ganze Reihe von Optionen, Befehlen und Zuordnungen auf einmal einrichten möchten, dann kommt Vims filetype plugin-Funktion zur Rettung.

Sie müssen Folgendes haben filetype plugin on ou filetype plugin indent on in Ihrem .vimrc , und um ein Plugin für z.B. Ruby zu erstellen, können Sie ~/.vim/ftplugin/ruby.vim . Technisch gesehen können Sie hier beliebige Befehle verwenden, die ausgeführt werden, wenn eine Ruby-Datei geladen wird, aber die empfohlenen sind setlocal , map <buffer> , command -buffer und die Definition von Funktionen. Viele weitere Informationen finden Sie im Benutzerhandbuch; wenn Sie mit der Skripterstellung in vim vertraut sind, springen Sie zu :help 41.11 , sonst lesen :help usr_40 et :help usr_41 .

11voto

Benedikt Waldvogel Punkte 11849

Es gibt auch ein nettes Vim-Skript: DetectIndent das versucht, die Einrückung einer von Ihnen geöffneten Datei zu erkennen. Es ist sehr praktisch, wenn Sie mit vielen Dateien mit unterschiedlichem Kodierungsstil arbeiten.

Ich verwende einen Autokommando in meinem .vimrc :

:autocmd BufReadPost * :DetectIndent

1voto

bartoindahouse Punkte 401

Um Leerzeichen einzufügen, wenn die Tabulatortaste gedrückt wird, setzen Sie die Option 'expandtab':

:set expandtab

Der nächste Schritt besteht darin, die Anzahl der Leerzeichen festzulegen, die beim Drücken der Tabulatortaste eingefügt werden, indem Sie die Option "Tabstop" einstellen. Zum Beispiel, um 2 Leerzeichen für einen Tabulator einzufügen, verwenden Sie:

:set tabstop=2

ref: http://vim.wikia.com/wiki/Converting_tabs_to_spaces

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X