Odpowiedzi:
: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
cnoremap help vert help
. Tworzy to mapowanie trybu poleceń, tak że po wpisaniu help
w trybie poleceń zobaczysz, że rozwija się do vert help
.
cnoremap help vert help
sprawia, że każda litera w help
pojawia się sama, więc słowo help
nie pojawia się w linii poleceń. Czy jest jakiś sposób, aby to naprawić? Może coś innego niż cnoremap
?
h
jako vert h
: :cabbrev h vert h
. Następnie za każdym razem :h
, gdy piszesz, automatycznie rozwinie się do :vert h
.
Jako alternatywę dla odpowiedzi Haroogana i Seana możesz użyć FileType
zdarzenia 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.
:vsplit
) ma wiele głosów za !?
help,*
zamiast po prostu help
. Zauważyłem również, że to polecenie działa, gdy dodam je do mojego _vimrc
i uruchomię nową instancję GVim, ale nie, gdy uruchomię polecenie w mojej bieżącej sesji GVim (muszę ręcznie :set ft=help
uruchomić autocmd).
*
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 vimrc
pobrać swoje źródło, aby wszelkie zmiany odniosły skutek, dodatkowo, jeśli plik jest już otwarty w buforze i :help
po prostu przenosi Cię do innego część pliku, to nie autocmd
będzie miało żadnego efektu
autocmd FileType help wincmd L
autocmd FileType h wincmd L
help
pliku, więc przy ustawieniu typu help
pliku ten autocmd będzie działał. Możesz to przetestować, robiąc :sef help
w dowolnym pliku, gdy w oknie jest podział, więc drugi autocmd @ danbruegge nie będzie potrzebny
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.vim
którym możesz nadpisać wszelkie ustawienia Vima, szczególnie dla help
i dodaj tam następującą linię:
autocmd BufWinEnter <buffer> wincmd L
Ten hak zapewni, że każdy help
plik 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.
To polecenie powinno to zrobić:
:vert help
:vsplit
to dzieli bieżące okno w pionie. W jaki sposób to otwarcie pomaga w okienku pionowym?
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
:au BufEnter */doc/* if &filetype=='help' | wincmd L | endif
autocmd FileType help wincmd L
działa u mnie tylko raz, działa bardzo dobrze!
Umieść następujące informacje w swoim ~/.vim/ftplugin/help.vim
wincmd L
Nie może być prostsze niż to :)
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 L
raz 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.
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.vim
lub użyć z autocmd
np .:
augroup my_filetype_settings
autocmd!
autocmd FileType help if winnr('$') > 2 | wincmd K | else | wincmd L | endif
augroup END
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 help
do .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
\ :h
do otwierania okna podzielonego w poziomie lub przechodzenia przez historię poprzednich poleceń pomocy bez automatycznego rozszerzania zachęty.