Làm thế nào tôi có thể làm cho Vim mở trợ giúp trong một phân chia dọc?


18

Tôi thường làm việc trong một thiết bị đầu cuối thả xuống, chạy cao khoảng 25 ký tự. Vì tôi thích các tab hơn cho windows 1 , nên thường có rất nhiều không gian ngang bị lãng phí - khoảng một nửa chiều rộng của thiết bị đầu cuối.

Trên hết, Vim, với cài đặt mặc định helpheight, chỉ để lại một vài dòng nội dung tệp khi tôi mở cửa sổ trợ giúp:

nhập mô tả hình ảnh ở đây

Có cách nào để :hsử dụng một phân chia dọc?

Tôi có thể:

  • giảm bớt helpheight
  • sử dụng <C-W>Lđể tự di chuyển cửa sổ
  • tạo một bản đồ hoặc một lệnh tùy chỉnh thực hiện ở trên cho tôi.

đó có phải là cách dễ hơn?

1 Tôi làm cửa sổ sử dụng khi tôi cần phải nhìn vào nhiều file với nhau. Nhưng thông thường tôi thích mỗi tệp nằm trong bối cảnh (tinh thần) của riêng nó.


@statox xin lỗi về điều đó. Tôi đã nghĩ gì khi tôi viết nó.
muru

Ahah không cần phải xin lỗi nó cũng xảy ra với những người tốt nhất ;-)
statox

Câu trả lời:


16

Bạn có thể sử dụng :vert h [your topic]để mở trợ giúp theo chiều dọc.

Bạn có thể sử dụng lệnh sau:

cnoreabbrev H vert h

Để làm cho vim thay thế Hbằng cách vert htự động trong dòng lệnh.

Ngoài ra, bạn có thể sử dụng tên viết tắt này:

cnoreabbrev HR vert bo h

Để mở cửa sổ trợ giúp ở phía bên phải màn hình. (xem :h :botrightđể biết thêm chi tiết về bo)


Vì vậy, không có tùy chọn cấu hình? Một cái gì đó như splitrightcho :help?
muru

Tôi không chắc bạn hiểu ý của bạn là gì, bạn muốn có thể chọn nơi đặt cửa sổ trợ giúp?
statox

Tôi nghĩ bạn có nghĩa là :rightbelowthay vì :botright.
muru

2
Vâng nó phụ thuộc vào những gì bạn đang mong đợi, let nói rằng bạn nên chơi với :lefta[bove], :rightb[elow], :to[pleft]:bo[tright]và xem cái nào bạn thích. Tôi thích :botrighthơn :rightbelowbởi vì dù bố trí của tôi là gì, tôi sẽ nhận được một cửa sổ trợ giúp về chiều cao toàn màn hình. Với :rightbelowtôi đã có một phân chia ngang, cửa sổ trợ giúp của tôi sẽ có chiều cao của sự phân chia này.
statox

2
Đáng buồn thay, viết cabbrevcác lệnh chính xác liên quan đến một số nghi thức .
Sato Katsura

7

Điều này được lấy cảm hứng từ vimrc của Junegunn :

augroup vimrc_help
  autocmd!
  autocmd BufEnter *.txt if &buftype == 'help' | wincmd L | endif
augroup END

1
Tôi tò mò: điều này khác với autocmd FileType help wincmd Lnhư thế nào? Bất kỳ trường hợp cạnh?
muru

Tôi nghĩ rằng điều đó được kích hoạt hai lần, ít nhất là đôi khi (thử thêm một tiếng vang ở đó). Nó có thể là một cái gì đó để làm với việc mở cửa sổ trợ giúp, hơn là đi đến thẻ trợ giúp cụ thể. Vì vậy, BufEntersẽ có hiệu quả hơn một chút. Chưa kể đến việc thêm một lệnh mà khi được kích hoạt hai lần sẽ trở thành "hoàn tác" (tự hủy).
VanLaser

6

Bạn có thể sử dụng một lệnh tùy chỉnh thực hiện lựa chọn dọc hoặc không cho bạn. Điều này có thể được dựa trên chiều rộng và chiều cao cửa sổ hiện tại:

function! s:ShowHelp(tag) abort
  if winheight('%') < winwidth('%')
    execute 'vertical help '.a:tag
  else
    execute 'help '.a:tag
  endif
endfunction

command! -nargs=1 H call s:ShowHelp(<f-args>)

Người giới thiệu :

  • :h winheight
  • :h <f-args>

Thông minh. Điều này sẽ rất hữu ích cho những lần tôi mở gvim trên một nửa màn hình dọc.
muru

0

Mặc dù đây không phải là một phân chia theo chiều dọc, tôi thấy có sự giúp đỡ trong tab riêng của nó là rất tốt.

augroup HelpInTabs
autocmd!
   autocmd BufEnter *.txt call HelpInNewTab()
augroup END

Rất tiếc. Tôi nghĩ rằng tôi đã dán toàn bộ câu trả lời. Đây là phần còn lại của mã.

" only apply to help files...
function! HelpInNewTab ()
  if &buftype == 'help'
    " convert help window to a tab
    execute "normal \<C-W>T"
  endif
endfunction

1
Đó cũng là một ý tưởng tốt để hiển thị HelpInNewTab()chức năng của bạn là gì bởi vì tôi nghĩ đây không phải là một tính năng tích hợp để chúng tôi không thể thực sự kiểm tra giải pháp của bạn.
statox

"chỉ áp dụng cho các tệp trợ giúp ... chức năng! HelpInNewTab () if & buftype == 'help'" chuyển đổi cửa sổ trợ giúp sang một tab thực thi chức năng kết thúc "bình thường \ <CW> T"
Mark Nichols
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.