Mở Trợ giúp Vim trong cửa sổ chia dọc


114

Có cách nào để nhờ Vim trợ giúp để mở trong ngăn chia dọc thay vì ngăn ngang không?

Câu trả lời:


127

:vertical( vert) hoạt động:

:vert help

Bạn cũng có thể kiểm soát xem cửa sổ phân chia ở bên trái / trên cùng hoặc bên phải / dưới cùng bằng topleft( to)botright( bo) . Ví dụ: để mở trợ giúp trong cửa sổ bên phải của phần chia dọc:

:vert bo help

2
làm thế nào tôi có thể ánh xạ điều đó để khi tôi chạy: help ____ nó luôn mở như vậy?
Tallboy

13
@Tallboy Hãy thử cnoremap help vert help. Điều này tạo ra một ánh xạ chế độ lệnh để khi bạn nhập helpvào chế độ lệnh, bạn sẽ thấy nó mở rộng đến vert help.
Keith Pinson

3
@Kazark: cnoremap help vert helptự helpxuất hiện từng chữ cái , vì vậy từ helpđó không xuất hiện trên dòng lệnh. Có cách nào để khắc phục điều đó? Có lẽ một cái gì đó khác hơn cnoremap?
iconoclast

7
Để cải thiện hơn: bạn có thể sử dụng cabbrev để xác định lại h như vert h: :cabbrev h vert h. Sau đó, mỗi khi bạn nhập :h, nó sẽ tự động mở rộng thành :vert h.
Aaron Shen,

@AaronShen: giải pháp tốt nhất (kết hợp với câu trả lời này)!
gauteh

38

Để thay thế cho câu trả lời của Haroogan và Sean, bạn có thể sử dụng FileTypesự kiện cho lệnh tự động như sau:

autocmd FileType help wincmd L

Mặc dù điều này sẽ thay đổi vị trí của bất kỳ cửa sổ trợ giúp nào cũng như di chuyển cửa sổ sau khi đặt thủ công nếu tệp bạn đang xem thay đổi. Nhưng tôi tin rằng đây là một vấn đề với bất kỳ giải pháp nào.


2
Đơn giản, và (nếu tôi hiểu đúng) thì tác dụng phụ là không đáng kể. Tại sao đây không phải là câu trả lời được chấp nhận !? Và tại sao một câu trả lời hoàn toàn không liên quan ( :vsplit) lại có rất nhiều phiếu tán thành !?
iconoclast

1
Tôi đã ủng hộ cả câu trả lời này và câu trả lời của Haroogan vì sự đơn giản của chúng. Tôi không rành về các sự kiện autocmd và tôi đã tự hỏi lý do là gì help,*thay vì đơn giản help. Ngoài ra, tôi nhận thấy rằng lệnh này hoạt động khi tôi thêm nó vào của tôi _vimrcvà bắt đầu phiên bản mới của GVim nhưng không hoạt động khi tôi chạy lệnh trong phiên GVim hiện tại của mình (tôi phải :set ft=helpkích hoạt autocmd theo cách thủ công ).
Anthony Geoghegan

Cảm ơn vì nhận xét: *không thực sự cần thiết. Theo như tôi có thể hiểu đối với phiên hiện tại so với phiên mới, trong phiên mới, bạn sẽ cần phải lấy lại nguồn vimrcđể mọi thay đổi có hiệu lực, ngoài ra nếu tệp đã được mở trong bộ đệm và :helpchỉ đưa bạn đến một tệp khác một phần của tệp, điều này autocmdsẽ không có hiệu lực
EdJoJob

Có cách nào ngắn hơn để giải quyết: h với cùng autocmd không? Hiện tại tôi viết nó trong một dòng bổ sung:autocmd FileType help wincmd L autocmd FileType h wincmd L
danbruegge

1
Autocmd này giải quyết vấn đề bằng cách xem xét loại tệp của tệp trợ giúp. Tất cả các tệp trợ giúp đều thuộc helploại tệp, do đó trên cài đặt của helploại tệp, autocmd này sẽ chạy. Bạn có thể kiểm tra điều này bằng cách:sef help trong bất kỳ tập tin trong khi có một sự chia rẽ trong cửa sổ của bạn, do đó @ autocmd thứ hai danbruegge của sẽ không cần thiết
EdJoJob

20

Không cần phải remap bất kỳ lệnh nào hoặc giới thiệu các bí danh kỳ lạ như thế nào :Help. Đây là giải pháp. Tạo ~/.vim/after/ftplugin/help.vimnơi bạn có thể ghi đè bất kỳ cài đặt Vim nào đặc biệt cho helpvà thêm dòng sau vào đó:

autocmd BufWinEnter <buffer> wincmd L

Móc này sẽ đảm bảo rằng bất kỳ helptệp nào được mở theo chiều dọc. Hơn nữa, nó không có tác dụng phụ được mô tả trong câu trả lời của Sean. Cá nhân, đây là giải pháp hoàn hảo cho tôi cho đến nay.

Hi vọng điêu nay co ich. May mắn nhất.


18

Lệnh này sẽ làm điều đó:

:vert help

10
Tôi không hiểu. Tất cả những gì :vsplitlàm là chia cửa sổ hiện tại theo chiều dọc. Làm thế nào để mở này trợ giúp trong một ngăn dọc?
doubleDown

7

Đặt cái này vào .vimrc:

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

Bây giờ bạn có thể mở trợ giúp theo chiều dọc bằng :Helplệnh (lưu ý rằng chữ cái đầu tiên là chữ hoa)


6

Để làm cho tệp trợ giúp luôn mở theo chiều dọc ở bên phải, hãy đặt tệp này vào vimrc của bạn:

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

Điều này sẽ có tác dụng phụ là có bất cứ thứ gì có "doc" trong đường dẫn của nó được mở theo chiều dọc, nhưng đó có thể không phải là vấn đề đối với bạn. Nó không dành cho tôi. Nếu bạn muốn nó mở theo chiều dọc bên trái hoặc bất kỳ thứ gì khác cho vấn đề đó, bạn có thể thay đổi wincmd L. Bạn có thể tìm hiểu thêm về nó với:he wincmd


1
Kiểm tra loại tệp trước khi tách,:au BufEnter */doc/* if &filetype=='help' | wincmd L | endif
rox

Điều này thật tuyệt! autocmd FileType help wincmd Lchỉ hoạt động một lần cho tôi, điều này hoạt động rất tốt!
voldikss


3

Thao tác này sẽ di chuyển cửa sổ trợ giúp một lần . Vì vậy, bạn có thể tự do di chuyển nó xung quanh sau khi cửa sổ được tạo.

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

Hàm, ILikeHelpToTheRight()sẽ chỉ chạy wincmd Lmột lần cho mỗi cửa sổ (đó là những gìw: tiền tố dành cho).

Điều này sau đó được gọi bất cứ khi nào một tệp "trợ giúp" được mở. Điều này không có tác dụng phụ của giải pháp EdJoJob.


2

Tự động mở cửa sổ trợ giúp ở trên cùng nếu có nhiều cửa sổ trong tab hiện tại hoặc ở bên phải, nếu chỉ có một cửa sổ:

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

Bạn sẽ cần đặt cái này vào ftplugin/help.vimhoặc sử dụng nó với autocmd, ví dụ:

augroup my_filetype_settings
autocmd!
autocmd FileType help if winnr('$') > 2 | wincmd K | else | wincmd L | endif
augroup END

1

Điều này có nghĩa là để thêm vào câu trả lời của @ m42, nhưng tôi chưa có 50 đại diện ở đây về SO thích hợp để thêm vào các nhận xét.

Thêm nnoremap <C-H> :vert bo helpvào .vimrc

Bây giờ nhấn Ctrl-H ở chế độ Bình thường sẽ chuyển sang chế độ Lệnh, có tiền tố để mở trợ giúp trong cửa sổ được chia theo chiều dọc ở bên phải. Bao gồm một khoảng trắng sauhelp· <- ở cuối dòng cấu hình để có kết quả tốt nhất.

Ánh xạ này cho phép bạn vẫn sử dụng :help\ :hđể mở cửa sổ được chia theo chiều ngang hoặc duyệt qua lịch sử lệnh trợ giúp trước đó của bạn mà không cần tự động mở rộng lời nhắc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.