Otwieranie pomocy Vima w oknie podzielonym w pionie

114

Czy istnieje sposób, aby Vim otwierał pomoc w pionowym podzielonym panelu zamiast poziomym?

Cis
źródło

Odpowiedzi:

127

:vertical( vert) działa:

:vert help

Możesz także kontrolować, czy okno zostanie podzielone po lewej / u góry lub po prawej / u dołu za pomocą topleft( to) i botright( bo) . Na przykład, aby otworzyć pomoc w prawym oknie podziału pionowego:

:vert bo help
m42
źródło
2
jak mogę to zmapować, aby po uruchomieniu: help ____ zawsze otwiera się w ten sposób?
Tallboy
13
@Tallboy Try cnoremap help vert help. Tworzy to mapowanie trybu poleceń, tak że po wpisaniu helpw trybie poleceń zobaczysz, że rozwija się do vert help.
Keith Pinson
3
@Kazark: cnoremap help vert helpsprawia, że ​​każda litera w helppojawia się sama, więc słowo helpnie pojawia się w linii poleceń. Czy jest jakiś sposób, aby to naprawić? Może coś innego niż cnoremap?
ikonoklast
7
Aby poprawić więcej: można używać cabbrev na nowo zdefiniować h jako vert h: :cabbrev h vert h. Następnie za każdym razem :h, gdy piszesz, automatycznie rozwinie się do :vert h.
Aaron Shen
@AaronShen: najlepsze rozwiązanie (w połączeniu z tą odpowiedzią)!
gauteh
38

Jako alternatywę dla odpowiedzi Haroogana i Seana możesz użyć FileTypezdarzenia dla autokomendy w następujący sposób:

autocmd FileType help wincmd L

Chociaż spowoduje to zmianę położenia każdego okna pomocy, a także przeniesienie okna po ręcznym umieszczeniu go, jeśli plik, którego szukasz, ulegnie zmianie. Ale uważam, że jest to problem z każdym rozwiązaniem.

EdJoJob
źródło
2
Proste i (jeśli dobrze rozumiem) skutki uboczne są znikome. Dlaczego to nie jest akceptowana odpowiedź !? I dlaczego zupełnie nieistotna odpowiedź ( :vsplit) ma wiele głosów za !?
ikonoklast
1
Głosowałem za prostotą zarówno tego, jak i odpowiedzi Haroogana. Nie jestem zaznajomiony ze zdarzeniami autocmd i zastanawiałem się, jaki jest tego powód, help,*zamiast po prostu help. Zauważyłem również, że to polecenie działa, gdy dodam je do mojego _vimrci uruchomię nową instancję GVim, ale nie, gdy uruchomię polecenie w mojej bieżącej sesji GVim (muszę ręcznie :set ft=helpuruchomić autocmd).
Anthony Geoghegan
Dzięki za komentarz: *właściwie nie był potrzebny. O ile rozumiem, dla bieżącej sesji w porównaniu z nową sesją, w nowej sesji będziesz musiał ponownie vimrcpobrać swoje źródło, aby wszelkie zmiany odniosły skutek, dodatkowo, jeśli plik jest już otwarty w buforze i :helppo prostu przenosi Cię do innego część pliku, to nie autocmdbędzie miało żadnego efektu
EdJoJob
Czy będzie krótszy sposób na adresowanie: h przy użyciu tego samego autocmd? Obecnie piszę to w dodatkowej linii:autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge
1
Ten autocmd rozwiązuje ten problem, sprawdzając typ pliku pomocy. Wszystkie pliki pomocy są typu helppliku, więc przy ustawieniu typu helppliku ten autocmd będzie działał. Możesz to przetestować, robiąc :sef helpw dowolnym pliku, gdy w oknie jest podział, więc drugi autocmd @ danbruegge nie będzie potrzebny
EdJoJob
20

Nie ma potrzeby zmieniania żadnych poleceń ani wprowadzania dziwnych aliasów, takich jak :Help. Oto rozwiązanie. Utwórz miejsce, w ~/.vim/after/ftplugin/help.vimktórym możesz nadpisać wszelkie ustawienia Vima, szczególnie dla helpi dodaj tam następującą linię:

autocmd BufWinEnter <buffer> wincmd L

Ten hak zapewni, że każdy helpplik zostanie otwarty w podziale pionowym. Ponadto nie ma efektu ubocznego opisanego w odpowiedzi Seana. Osobiście jest to jak dotąd idealne rozwiązanie dla mnie.

Mam nadzieję że to pomoże. Powodzenia.

Alexander Shukaev
źródło
18

To polecenie powinno to zrobić:

:vert help
Berzemus
źródło
10
Nie rozumiem tego. Wszystko :vsplitto dzieli bieżące okno w pionie. W jaki sposób to otwarcie pomaga w okienku pionowym?
doubleDown
7

Umieść to w swoim .vimrc:

command -nargs=* -complete=help Help vertical belowright help <args>

Teraz możesz otworzyć pomoc pionową za pomocą :Helppolecenia (zauważ, że pierwsza litera jest wielka)

Chronial
źródło
6

Aby pliki pomocy były zawsze otwierane w pionowym podziale po prawej stronie, umieść to w swoim vimrc:

augroup helpfiles
  au!
  au BufRead,BufEnter */doc/* wincmd L
augroup END

Będzie to miało taki efekt uboczny, że cokolwiek z „dokumentem” na swojej ścieżce będzie otwarte w pionie, ale może to nie stanowić problemu. To nie jest dla mnie. Jeśli wolisz, aby otwierał się w pionowym podziale po lewej stronie lub cokolwiek innego, możesz to zmienić wincmd L. Możesz dowiedzieć się więcej na ten temat z:he wincmd

Sean Mackesey
źródło
1
Sprawdź typ pliku przed podzieleniem,:au BufEnter */doc/* if &filetype=='help' | wincmd L | endif
rox
To jest niesamowite! autocmd FileType help wincmd Ldziała u mnie tylko raz, działa bardzo dobrze!
voldikss
6

Umieść następujące informacje w swoim ~/.vim/ftplugin/help.vim

wincmd L

Nie może być prostsze niż to :)

Shrikant Sharat
źródło
To już nie działa. Zobacz ten numer na Github: github.com/vim/vim/issues/1806
Ilker Mutlu
3

Spowoduje to jednokrotne przeniesienie okna pomocy . Możesz więc dowolnie przesuwać go po utworzeniu okna.

if has('autocmd')
  function! ILikeHelpToTheRight()
    if !exists('w:help_is_moved') || w:help_is_moved != "right"
      wincmd L
      let w:help_is_moved = "right"
    endif
  endfunction

  augroup HelpPages
    autocmd FileType help nested call ILikeHelpToTheRight()
  augroup END
endif

Funkcja ILikeHelpToTheRight()będzie działać tylko wincmd Lraz na okno (do tego w:służy prefiks).

Jest to następnie wywoływane za każdym razem, gdy otwierany jest plik „pomocy”. Nie ma to skutków ubocznych rozwiązania EdJoJob.

docwhat
źródło
2

Dynamicznie otwieraj okna pomocy u góry, jeśli na bieżącej karcie jest więcej niż jedno okno, lub po prawej, jeśli jest tylko jedno okno:

if winnr('$') > 2
    wincmd K
else
    wincmd L
endif

Będziesz musiał to umieścić ftplugin/help.vimlub użyć z autocmdnp .:

augroup my_filetype_settings
autocmd!
autocmd FileType help if winnr('$') > 2 | wincmd K | else | wincmd L | endif
augroup END
rafi
źródło
1

Ma to na celu dodanie do odpowiedzi @ m42, ale nie mam jeszcze 50 powtórzeń w SO, które należy dodać do komentarzy.

Dodaj nnoremap <C-H> :vert bo helpdo .vimrc

Teraz naciśnięcie Ctrl-H w trybie normalnym spowoduje przejście do trybu poleceń z prefiksem otwierającym pomoc w oknie podzielonym pionowo po prawej stronie. Uwzględnij spację na końcu po help·<- na końcu linii konfiguracji, aby uzyskać najlepsze wyniki.

To mapowanie pozwala nadal używać :help\ :hdo otwierania okna podzielonego w poziomie lub przechodzenia przez historię poprzednich poleceń pomocy bez automatycznego rozszerzania zachęty.

remyActual
źródło