Zmień opcje <li> automatycznego przypisywania w VIM

3

Domyślnie Vim wydaje się nie chcieć wciskać zawartości wewnątrz <li> znaczniki, chociaż automatycznie przypisuje się do większości innych znaczników HTML.

Na przykład, jeśli zacznę od tego kodu:

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

i mieć vim autoindent to dostaję:

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

Jednak tak naprawdę chcę tego:

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

Jest trochę irytujące, gdy piszemy nowy kod, aby mieć autoindent po większości otwierających tagów, ale nie ten, choć jest to dość łatwe do obejścia. To, co naprawdę do mnie dociera, to użycie vima do autoformatowania jakiegoś dużego wygenerowanego HTML, z którym próbuję się pobawić (próbując zrobić kilka zmian w interfejsie użytkownika za pomocą wygenerowanego źródła).

Czy jest jakiś łatwy sposób na zmianę zachowania automatycznego przypisywania tak, aby traktowało to <li> tak jak każdy inny tag otwierający i wciskać zawartość?

Herms
źródło

Odpowiedzi:

6

Nie widzę łatwego sposobu, aby to zrobić, ale to rozwiązanie nie jest zbyt trudne.

  1. Skopiuj $ VIMRUNTIME / indent / html.vim do ~ / .vim / indent / html.vim, jeśli używasz Uniksa lub ~ / vimfiles / indent / html.vim, jeśli jesteś w systemie Windows.
  2. Edytuj swoją kopię indent / html.vim, dodając tę ​​linię,

    call <SID>HtmlIndentPush('li')

    do listy podobnych wywołań już w tym pliku.

Że należy to zrobić.

garyjohn
źródło
Myślę, że należy do kategorii „łatwa naprawa”. Pomyślałem, że to musi być coś takiego, ale nie byłem pewien, jak zdefiniowano wcięcia. Działa idealnie.
Herms
Używam wbudowanego vima w OSX. Każdy pomysł, czym jest $ VIMRUNTIME? vim jest w / usr / bin / (nie jest dowiązaniem symbolicznym)
John Hinnegan
1
@JohnHinnegan: Powinieneś być w stanie otworzyć Vima i wykonać :echo $VIMRUNTIME.
garyjohn
2

Jeśli ktoś inny znajdzie to pytanie tak jak ja, za pomocą google, istnieje inne rozwiązanie, w którym używa się Tima Pope'a rag-tag rozbudowa. Spowoduje to automatyczne dodanie odpowiednich wcięć i zaktualizowanie niektórych innych tagów dla HTML5.

Sean Farley
źródło
Przepraszamy, zainstalowałem wtyczkę, o której wspomniałeś, ale wtyczkę <li> nie są poprawnie wcięte dla mnie .. skopiowałem ragtag.vim do mojego ~/.vim/plugin/ katalog, a następnie uruchom ponownie vima i gg=G
user35538