Opierając się na doskonałej odpowiedzi autorstwa @KeithPinson (przepraszam, za mało punktów reputacji, aby skomentować Twoją odpowiedź), ta alternatywa uniemożliwi autouzupełnianie kopiowanie jakichkolwiek dodatkowych elementów, które mogą znajdować się w tagu HTML (np. Klasy, identyfikatory itp.) .), ale nie należy ich kopiować do tagu zamykającego.
UPDATE Zaktualizowałem swoją odpowiedź, aby pracować z filename.html.erb
plikami.
Zauważyłem, że moja pierwotna odpowiedź nie działała w plikach powszechnie używanych w widokach Railsów, na przykład some_file.html.erb
gdy używałem osadzonego ruby (np <p>Year: <%= @year %><p>
.). Poniższy kod będzie działał z .html.erb
plikami.
inoremap ><Tab> ><Esc>?<[a-z]<CR>lyiwo</<C-r>"><Esc>O
Przykładowe użycie
Rodzaj:
<div class="foo">[Tab]
Wynik:
<div class="foo">
|
<div>
gdzie |
wskazuje pozycję kursora
Jako przykład dodania zamykającego znacznika w linii zamiast stylu blokowego:
inoremap ><Tab> ><Esc>?<[a-z]<CR>lyiwh/[^%]><CR>la</<C-r>"><Esc>F<i
Przykładowe użycie
Rodzaj:
<div class="foo">[Tab]
Wynik:
<div class="foo">|<div>
gdzie |
wskazuje pozycję kursora
To prawda, że oba powyższe przykłady opierają się na >[Tab]
sygnalizowanie znacznika zamykającego (czyli trzeba by wybrać albo inline lub styl grupowych). Osobiście używam stylu blokowego >[Tab]
zi stylu inline z >>
.
Ctrl-_
, ale to robi małą czcionkę na moim terminalu.