Veränderung <li> Autoindent-Optionen in VIM </li>

816
Herms

Standardmäßig scheint Vim den Inhalt innerhalb von <li>Tags nicht einzurücken, obwohl er sich für die meisten anderen HTML-Tags automatisch einfügt.

Wenn ich zum Beispiel mit diesem Code beginne:

<ul> <li> foo </li> <li> bar </li> </ul> 

und vim autoindent bekomme ich:

<ul> <li> foo </li> <li> bar </li> </ul> 

Was ich jedoch wirklich will, ist folgendes:

<ul> <li> foo </li> <li> bar </li> </ul> 

Es ist ziemlich ärgerlich, wenn man neuen Code schreibt, damit er nach den meisten öffnenden Tags automatisch indiziert wird, aber nicht mit diesem. Wo dies wirklich interessant ist, ist die Verwendung von vim, um einige große generierte HTML-Dateien zu formatieren, mit denen ich versuche, herumzuspielen.

Gibt es eine einfache Möglichkeit, dieses autoindent-Verhalten so zu ändern, dass es <li>wie jedes andere einleitende Tag behandelt wird und der Inhalt eingerückt wird ?

3

2 Antworten auf die Frage

6
garyjohn

Ich sehe keinen einfachen Weg dafür, aber diese Lösung ist nicht zu schwierig.

  1. Kopieren Sie $ VIMRUNTIME / indent / html.vim in ~ / .vim / indent / html.vim, wenn Sie Unix verwenden, oder in ~ / vimfiles / indent / html.vim, wenn Sie Windows verwenden.
  2. Bearbeiten Sie Ihre Kopie von indent / html.vim und fügen Sie diese Zeile

    call <SID>HtmlIndentPush('li')

    der Liste ähnlicher Anrufe hinzu, die sich bereits in dieser Datei befinden.

Das sollte es tun.

Ich denke, das fällt in die Kategorie "easy fix". Ich dachte mir, dass es so etwas sein musste, aber ich war mir nicht sicher, wie der Einzug definiert wurde. Funktionierte perfekt. Herms vor 12 Jahren 0
Ich verwende vim unter OSX. Irgendeine Idee, was $ VIMRUNTIME ist? vim ist bei / usr / bin / (kein Symlink) John Hinnegan vor 11 Jahren 0
@JohnHinnegan: Du solltest Vim öffnen und `: echo $ VIMRUNTIME` ausführen können. garyjohn vor 11 Jahren 1
2
Sean Farley

Wenn jemand diese Frage wie ich über Google findet, gibt es eine andere Lösung, die die rag-Tag- Erweiterung von Tim Pope verwendet . Dadurch werden automatisch die korrekten Einrückungen hinzugefügt und einige andere Tags für HTML5 aktualisiert.

Sorry, ich habe das Plugin installiert, das Sie erwähnen, aber das `
  • `s sind für mich nicht richtig eingerückt .. Ich kopierte` ragtag.vim` in mein `~ / .vim / plugin /` -Verzeichnis, starte dann vim neu und `gg = G`
  • user35538 vor 10 Jahren 0