Jak mogę zachować listę buforów dla każdego okna w Vimie?


15

Dziwi mnie, że nie znalazłem odpowiedzi na to pytanie, ale może brakuje mi czegoś oczywistego: czy można zachować listę buforów dla każdego okna ? Często mam około 4 podziałów, a każdy z nich zazwyczaj służy do określonego celu: CSS w jednym, JS w innym, HTML w kilku innych itp.

Prawdopodobnie szukam wtyczki, która to osiąga. Ostatnio korzystam z BufExplorer, który ma ustawienie pozwalające zachować listę buforów na zakładkę, ale nie na okno.

Naprawdę podoba mi się lista MRU, którą posiada BufExplorer, ale denerwuje mnie to, że opiera się ona na mojej globalnej liście buforów - potrzebuję historii MRU na okno.


Nie możesz go znaleźć, ponieważ nie został jeszcze zbudowany. Najbliżsi sąsiedzi są zidentyfikowani w tym pytaniu
Nowa Aleksandria,

Odpowiedzi:


1

IMHO, naprawdę potrzebujesz menedżera Work Space.

możesz znaleźć jeden dla vima @ http://www.vim.org/scripts/script.php?script_id=1410

Zapewni Ci następujące polecenia:

:WsAddFile              Add a new file to the workspace.                  
:WsAddGroup             Add a new group to the workspace.                 
:WsClose                Close the workspace window.                       
:WsInsertFile           Insert a file.                                    
:WsInsertGroup  Insert a group.                                           
:WsOpen         Open a workspace and display it in a window.              
:WsRun          Run a command using the selected unquoted file names.     
:WsRunq         Run a command using the selected quoted file names.       
:WsSave         Save the workspace.                                       
:WsSessionOpen  Open the workspace and Vim session.                       
:WsSessionSave  Save the workspace and the Vim session.                   
:WsToggle               Open or Close the workspace window. 

Mam zrzut ekranu z pracy z menedżerem Workspace z ponad 4 oknami opublikowanymi na moim fb , możesz go tam zobaczyć (który jest publiczny).

Nie jest to dokładnie taka lista buforów, jak chcesz, ale możesz otwierać pliki w różnych oknach i w wielu buforach w tym samym oknie.

W późniejszym przypadku menedżer obszaru roboczego będzie służył jako lista buforów. Jak widać na zrzucie ekranu, pogrupowałem pliki w różne grupy.

Jest to tak blisko, jak to tylko możliwe, AFIK.

Dobry dzień.


0

Po co podnosić poziom zarządzania oknami do vima? Od czasu do czasu używam podzielonych okien - mam Ctrl-F zamapowany na polecenie grep typu znajdź w plikach, które pojawia się w podzielonym oknie, a czasami używam również vimdiff.

Ale czy naprawdę chcesz mieć stałe zarządzanie oknami w vimie? Menedżer połączeń PuTTY i wszelkiego rodzaju emulatory terminali pozwalają dzielić terminale w dowolny sposób, a następnie uruchamiać osobne sesje vim w każdej z nich.


Czy możesz współdzielić rejestry między instancjami vim? Jest to zawsze mój najważniejszy powód, dla którego nie chcę uruchamiać wielu instancji vima: nie mogę yankz jednego i putdrugiego.
brianmearns

0

mieć NERDTree otwarte po lewej stronie. >

Mam kilka otwartych buforów (tylko jeden widoczny w widoku głównym ... nazwij to „buforem 1”)

Teraz przechodzę do NERDTree i wybieram inny plik, który chcę tylko przeglądać naprawdę szybko lub coś z niego skopiować. Więc otwieram ten plik z NERDTree i bufor1 jest poprawnie ukryty i teraz patrzę na bufor, który właśnie otworzyłem (nazwij go buforem 2)

Chcę teraz całkowicie wyjść z tego bufora 2 i wrócić do edycji bufora 1, ale kiedy to zrobię: q na buforze 2 kończę patrząc na tylko jedno duże drzewo NERDTree i muszę ponownie wyświetlić bufor1. ... [pokaż resztę cytatu]

Nie używam Nerdtree, ale wygląda na to, że powinieneś pisać Ctrl- ^ (prawdopodobnie Ctrl + klawisz 6), aby wrócić do bufora1.


0

Nie znam takiej wtyczki.

Jednym szybkim sposobem otwarcia bufora określonego pliku jest użycie polecenia FuzzyFinder: FufBuffer. Otworzy listę wszystkich otwartych buforów (oprócz tego w bieżącym oknie) dla łatwego dostępu. Mój jest związany, fn. Pozwoliłbym na przykład szybko zobaczyć wszystkie pliki css z, fncss lub wszystkie pliki js z, fnjs. FuzzyFinder jest świetny do uzyskania dostępu do tego pliku / bufora / katalogu / etc, przy minimalnym wysiłku (nie tylko w tym konkretnym przypadku użycia).

Podejrzewam jednak, że szukasz czegoś, co pozwoli ci użyć: bn i: bN (lub cokolwiek, na co masz mapowane, nie pamiętam, czy ctrl-n / p są domyślne czy moje niestandardowe) do przełączania między twoimi buforami określony typ pliku.

Być może mógłbyś stworzyć wtyczkę, która daje komendy pozwalające na przejście do poprzednich / następnych buforów tego samego typu, co plik bieżącego bufora w bieżącym oknie.


BTW, myślę, że zarządzanie tymi oddzielnymi listami buforów byłoby bardziej bólem niż ulgą.
Hannes

-1

To nie jest całkowita odpowiedź, ale wydaje się, że vim utrzymuje osobne bufory # i% dla każdego okna. Możesz więc szybko przełączać się między dwoma plikami w jednym oknie (używając CTRL- ^) i dwoma różnymi plikami w drugim oknie. Lista buforów to wciąż wszystkie dodane bufory.


To jest naprawdę komentarz, ale nie mogę jeszcze komentować, więc zamieszczam odpowiedź, która zostaje odrzucona, ponieważ nie odpowiada na pytanie. Domyśl.
mondaugen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.