Wiele buforów, ten sam plik, różne ustawienia

10

Czy można edytować plik w różnych ustawieniach jednocześnie? Mówiąc dokładniej, chciałbym mieć wiele buforów w tej samej instancji Vima, które mają tę samą zawartość (zmiana jednego bufora natychmiast wpływa na zawartość drugiego bufora), ale różne pozycje kursora, różne znaki, różne podświetlanie składni itp.

Typowe przypadki użycia obejmują niezależne edytowanie różnych części tego samego pliku (bez np. Przechodzenia do trybu wizualnego w jednym wystąpieniu, przerywanie wyboru bieżącego trybu wizualnego w drugim przypadku) oraz edytowanie plików w formacie mieszanym (np. HTML i JavaScript) bez konieczności przełączania ustawień . (Alternatywnym podejściem dla drugiego przypadku użycia jest automatyczna zmiana ustawień na podstawie pozycji kursora, ale to nie wchodzi w zakres tego pytania).

Redaktor, którego wzmianka co prawda może zszokować, nazywa to „buforami pośrednimi”.

Gilles „SO- przestań być zły”
źródło

Odpowiedzi:

2

Korzystanie z wielu okien w celu wyświetlenia tego samego bufora umożliwia przeglądanie, edytowanie, wybieranie, ... w różnych częściach bufora.

Podświetlanie składni jest sprawą bardziej skomplikowaną, w zależności od tego, czego dokładnie chcesz. Vim już obsługuje podświetlanie różnych części bufora o różnej składni. Na przykład, jeśli masz bufor typu pliku HTML, <style>tagi zostaną podświetlone jako CSS, <script>tagi zostaną podświetlone jako javascript itp. Odbywa się to za pomocą :syn includepolecenia, a następnie poprzez zdefiniowanie odpowiednich regionów składni, do których należy zastosować składnię.

Alternatywą jest użycie :ownsyntaxpolecenia do określenia podświetlenia składni używanego dla określonego okna.

Znaki są lepkim punktem. Małe litery są specyficzne dla bufora, a wielkie litery są globalne, ale nie ma żadnych znaków specyficznych dla okna.

jamessan
źródło
1
Jeśli używam wielu okien, czy to oznacza, że ​​muszą one cały czas znajdować się na ekranie? Co się stanie, jeśli zamknę okno, gdy inne okno pokazuje ten sam bufor, czy pozycja kursora w tym oknie zostanie utracona? Czy jest coś podobnego :ownsyntaxdo innych ustawień, takich jak wcięcie, polecenie kompilatora itp.?
Gilles „SO- przestań być zły”
@Gilles Możesz mieć dwa okna, które nigdy nie są wyświetlane razem na ekranie, umieszczając je w osobnych zakładkach, utrzymując w ten sposób ustawienia okna, położenie kursora itp. Może to pomóc, w zależności od konkretnego przypadku użycia.
Bogaty