VIM: Jak mogę otworzyć plik po prawej stronie jako vsplit z lewego panelu NerdTree?

84

Zainstalowałem wtyczkę NerdTree.

Jak mogę otworzyć plik po prawej stronie jako vsplit z lewego panelu NerdTree?

słabo
źródło

Odpowiedzi:

86

Jest spolecenie, ale otwiera plik podzielony na lewo od bieżącego bufora. Chociaż możesz wtedy nacisnąć Ctrl+, W raby zamienić okna.

grimgav
źródło
3
W porządku, ale jeśli chcę otworzyć inny plik, wpisując s, otrzymuję kolejne podzielone okno, ale chcę zastąpić starsze podzielone okno aktualnie otwartym plikiem, jak mogę to zrobić?
prawdopodobnie
5
Wygląda na to, że po dodaniu set splitright, jak sugerował @PrinceGoulash, sdo pliku w NerdTree otworzy się podział po prawej stronie bez konieczności robienia tego Ctrl-W r. Jeśli dobrze cię rozumiem, jeśli chcesz trzymać się tylko dwóch podzielonych w pionie okien, możesz przełączyć się do starszego okna i otworzyć nowy plik w nim przez NerdTree, po prostu naciskając Enter.
grimgav
Nie, próbuję powiedzieć, że są dwa okna vsplit, po lewej jest menu nerdtree, jeśli naciśnę "s", pojawi się po prawej stronie. nie pojawi się już okno vsplitted.
prawdopodobnie
@guru W takim razie chcesz „otworzyć” nowe okno, a nie „dzielić” je. Okno jest zawsze otwierane w / zastępuje ostatnio wybrany bufor. Niestety najprawdopodobniej będzie to lewy z twoich dwóch otwartych. Nie jest to idealne rozwiązanie, ale jedną z opcji może być obrócenie okien za pomocą Ctrl+W R, a następnie otwarcie pliku i obrócenie z powrotem.
JHannes,
161

Aby vsplitumieścić nowy bufor po prawej stronie bieżącego bufora:

set splitright

Podobnie, aby splitwstawić nowy bufor poniżej bieżącego bufora:

set splitbelow

Jednak nie próbowałem tego z NerdTree.

Prince Goulash
źródło
3
ok, ale jak mogę otworzyć plik vsplited zastępując starszy?
prawdopodobnie
1
@shably Jeśli splitrightustawiłeś, możesz wyjść z pliku, który jest obecnie po prawej stronie vsplit newfilename, a to umieści nowy plik w miejscu, w którym był stary. Można również zrobić te w jednej linii tak: q | vsplit newfilename. Zakłada się, że plik po prawej stronie jest plikiem aktywnym.
SunSparc
1
właśnie przetestowany, splitright działa dobrze z nerdtree. Zwróć uwagę, że spowoduje to, że wszystkie dalsze podziały będą poziome zamiast pionowe, chyba że ktoś użyjevsplit
Dwight Spencer
3

To trochę hack, ale jak to robię, to:

  1. Umieść kursor w oknie, w którym chcę otworzyć plik
  2. Hit <leader>n<leader>n(to zamyka NERDtree, a następnie otwiera je ponownie z kursorem w NERDtree)
  3. Wybierz plik

W moim systemie otwiera to w ostatnim oknie, w którym właśnie byłem, jeśli plik nie jest jeszcze otwarty na moim ekranie. Rozpocznij w oknie, w którym chcesz otworzyć plik

Rozpocznij w oknie, w którym chcesz otworzyć plik.

Po <code> <leader> n <leader> n </code> wrócisz do NERDTree

Hit <leader>n<leader>naby zamknąć i ponownie otworzyć NERDTree

Wybierz plik, który chcesz otworzyć!

Wybierz żądany plik!

Szybko C-w =przywróci Twoje okna do właściwych proporcji.

Ben Kushigian
źródło
świetne rozwiązanie. przez <leader>nciebie znaczy <C-n>?
Hafenkranich
3

Nie jestem pewien, czy ktoś jeszcze się z tym zmaga, ale oto jak sobie z tym poradziłem.

Możesz użyć

:ls 

aby wyświetlić listę dostępnych buforów. Który wyglądałby mniej więcej tak:

1 "foo.txt"
2 "blame_the_user.java"

:b1 aby wybrać plik foo.txt

:b2 dla blame_the_user.java

Tę metodę można wykonać z dowolnego ustawienia okna za pomocą :splub :vs.

Najpierw otwórz bufory, które chcesz podzielić.

Orzeł
źródło