2012-07-03 19 views
24

Często edytuję długie pliki w vim, które mają bloki kodu w wielu różnych miejscach w pliku, które muszę nieustannie przechodzić między nimi. Oczywiście, jednym ze sposobów rozwiązania tego problemu jest podzielenie okna na: podzielenie i edycję każdej części w innym oknie podziału, a :w w jednym z okien zapisze cały plik. To dobrze i dobrze, jeśli masz wystarczająco duży ekran, ale czasami muszę użyć vima na laptopie o niskiej rozdzielczości i nie chcę dalej zmniejszać obszaru ekranu, dzieląc okno.Jak edytować ten sam plik na wielu kartach w vimie?

W tym przypadku naprawdę chciałbym edytować plik w wielu kartach i traktować każdą oddzielną kartę dokładnie tak, jak dzieli ją oddzielna widok. Mogę naśladować to, używając :tabopen <the same filename>, gdy mam otwartą jedną kopię pliku, ale jest to trochę hacky - nie działa, jeśli już dokonałem zmian w pliku, ponieważ vim sądzi, że właśnie otwieram plik złożyć drugi raz.

Czy istnieje dobry sposób na uzyskanie pożądanego zachowania za pomocą zakładek w vim?

+4

Innym sposobem osiągnięcia tego celu jest oznaczyć miejsca w pliku z '' mb' ma', etc, i powrócić do miejsc, z ' 'A',' "b", itp. –

Odpowiedz

28

Komenda :tab przyjmuje polecenie jako argument.

Więc można to zrobić:

:tab split 

To będzie działać nawet wtedy, gdy bufor jest modyfikowany i zapisać w jednej zakładce zapisuje plik, aktualizowanie stanu zapisanego w obu.

+8

Lub ': tab sp' na krótki – Conner

7

Można użyć polecenia :tab:

:[count]tab {cmd}` 

Execute {cmd} i kiedy otwiera nowe okno Otwórz stronę nowej karty zamiast. [...] Po pominięciu [count] strona z zakładkami pojawia się po aktualnej stronie. Po określeniu [count] strona nowej karty pojawia się po stronie karty [count]. Użyj :0tab cmd, aby uzyskać nową stronę karty jako pierwszą.

Przykłady:

:tab split   " opens the current buffer in new tab page 
:tab help gt   " opens tab page with help for "gt" 
Powiązane problemy