Làm cách nào để tối đa hóa cửa sổ chia nhỏ?


110

Gọi :helptrong Vim, tôi nhận được trang hướng dẫn trợ giúp với cửa sổ chia nhỏ. Tôi muốn tối đa hóa cửa sổ thủ công trợ giúp và đóng cửa sổ kia.

Tôi có thể làm cái này như thế nào? Lệnh Vim để làm điều này là gì?

Câu trả lời:


88

Với : help [topic] bạn mở ra một chủ đề mà bạn quan tâm.
Ctrl-Wo sẽ thu nhỏ các cửa sổ khác (chỉ để cửa sổ trợ giúp mở / phóng to).
(Ctrl-Wo có nghĩa là giữ Ctrl, nhấn W, rồi nhấn o)


39
hoặc,: chỉ sẽ thực hiện công việc.
shibly

14
Từ tệp chỉnh sửa, làm cách nào tôi có thể quay lại sổ tay trợ giúp sau khi thực hiện CTRL + W o?
shibly

3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txt, vv (xem trợ giúp cho wincmd, switchbufđể biết chi tiết). Điều thú vị là câu trả lời chính xác (IMHO) của tôi vẫn chưa được đưa ra ...
sehe

2
@ldigas: đó là một ý kiến ​​(đáng ngạc nhiên). Trừ khi bạn trích dẫn một nguồn có uy tín, tôi sẽ coi đó là sở thích cá nhân của bạn, thực sự. Tôi thường không sử dụng chúng, nhưng gần đây tôi nhận thấy rằng tôi đang sử dụng chúng cho những người nhỏ tuổi như thế này (tối đa hóa tạm thời một bộ đệm bên; thực hiện các công cụ sức mạnh như có nhiều khác biệt song song với nhau trong một phiên vim). Tab cũng là một phép lạ về khả năng sử dụng với gvim --remote. Tôi luôn sử dụng se guioptions=agimmặc dù vì tôi thích hiển thị tab giống như bảng điều khiển.
sehe

23
điều này sẽ đóng các cửa sổ khác và nếu bạn có một hoặc nhiều cửa sổ mà bạn đã thực hiện thay đổi và chưa lưu, thì điều này sẽ không hoạt động - tôi cũng nghĩ câu hỏi là về việc tối đa hóa cửa sổ để hoạt động trong một thời gian ngắn ở trạng thái đó và sau đó trở về trạng thái trước đó - bằng cách đóng tất cả cửa sổ sau đó bạn sẽ phải sử dụng tập tin phiên của bạn hoặc bằng tay mở tất cả các cửa sổ khác để lấy lại
serup

133

Bạn có thể sử dụng Ctrl+WT( đó là vốnT ) để chuyển bất kỳ cửa sổ nào đang mở sang tab của chính nó.

Như những người khác đã đề cập Ctrl+W_/ Ctrl+W|để tối đa hóa trong bố cục tab / cửa sổ hiện tại (đồng thời tôn trọng cài đặt chiều cao / chiều rộng tối thiểu cho nhiều cửa sổ khác).

( Ctrl+W=thay đổi kích thước tất cả các cửa sổ thành kích thước bằng nhau, tôn trọng cài đặt chiều cao / chiều rộng tối thiểu)

Chỉnh sửa nhận xét

  1. bắt đầu vim (ví dụ gvim /tmp/test.cpp)
  2. gọi trợ giúp :help various-motions- mở một cửa sổ chia nhỏ
  3. chuyển trợ giúp vào tab riêng biệt được tối đa hóa: C-wT
  4. thích đọc sách hướng dẫn tốt :)
  5. chuyển trợ giúp trở lại tab ban đầu:

    mAZZ<C-w>S`A
    
    • mA: đặt dấu toàn cầu A
    • ZZ: đóng bộ đệm / tab trợ giúp
    • C-wS: tách cửa sổ gốc
    • `A: nhảy đến điểm đã lưu A

Bạn có thể tránh sử dụng dấu cho bộ đệm bình thường (không trợ giúp). Hãy cho tôi biết nếu bạn quan tâm.


4
Sau khi nhận tab bằng CTRL + WT, làm cách nào để tôi có thể quay lại các cửa sổ đã tách ban đầu?
shibly

2
@guru: chỉ cần chuyển đổi các tab như mọi khi (sử dụng Ctrl-PgUp, Ctrl-PgDownhoặc :tabnext, :tabprev). Để đóng mới (ví dụ như giúp đỡ) tab, sử dụng ZZ, Ctrl-W, C, :q, :clo, :tabclosehoặc bất kỳ cách nào khác mà bạn thường gần cửa sổ / tab
sehe

1
Không, đó không phải là câu hỏi. Giả sử bạn có hai tab, bây giờ bạn muốn không có tab nào, bạn muốn hai vùng đệm như các cửa sổ được chia nhỏ. Có một lệnh nào để làm điều này không?
shibly

Chỉnh sửa câu hỏi với thủ tục chung. ( Tôi muốn thêm rằng giai điệu của bình luận của bạn có thể đi qua khá thân thiện Trong ngôn ngữ viết,. "No, that was not the question"Nghe có vẻ như một lời khiển trách tôi chắc chắn rằng bạn không có nghĩa là nó xấu. )
sehe

@guru: câu trả lời được cập nhật. Nó phức tạp hơn một chút so với mong đợi vì bộ đệm trợ giúp là đặc biệt (và bạn không thể sử dụng :sbufnhư tôi thường thích). Hy vọng điều này sẽ hữu ích
sehe

53

Bạn có thể mở rộng cửa sổ đến kích thước tối đa bằng cách sử dụng Ctrl+W_(gạch dưới). Kích thước cuối cùng của cửa sổ được mở rộng sẽ bị giới hạn bởi giá trị của winminheighttùy chọn. Khi bạn đóng cửa sổ trợ giúp, (các) cửa sổ trước đó của bạn sẽ được khôi phục về kích thước cũ.


19
Ctrl+W o đóng các cửa sổ khác, vì vậy chúng biến mất. Đó là lý do tại sao tôi sử dụng Ctrl+W _.
Greg Hewgill,

2
Làm cách nào để lấy lại hai cửa sổ đã tách ban đầu bằng tệp chỉnh sửa và bằng hướng dẫn trợ giúp?
shibly

3
Các Ctrl+W =lệnh thay đổi kích thước cửa sổ để họ là tất cả khoảng cùng kích thước.
Greg Hewgill,

14
Đối với phần chia dọc, bạn sẽ muốn sử dụng Ctrl+W |.
Achal Dave

2
đối với bất kỳ linh hồn bị mất người xảy ra trên chủ đề này ... để lấy lại những quan điểm phân chia, sử dụng ctrl+w = // điều này làm cho tất cả các cửa sổ cùng một kích thước
duggi

19

Tôi thích sử dụng các tab cho điều đó. Sử dụng

:tabedit %

để mở tệp được tối đa hóa trong tab mới, sau khi bạn hoàn tất, hãy quay lại thiết lập cũ với tất cả các cửa sổ sử dụng

:tabclose

Tôi thấy đây là giải pháp lý tưởng vì nó hoạt động cùng với :cwvà plugin Tagbar. Lấy từ: vim.wikia


13

Tôi thích sử dụng 'M' để tối đa hóa và 'm' để giảm thiểu.

Nó sẽ không đẹp vì nó sẽ thu nhỏ tất cả các cửa sổ đang mở khác trong cùng một vùng đệm, nhưng tôi thấy nó hữu ích hơn khi xử lý các tab. Vì vậy, ví dụ, thay vì mở một tab mới cho tệp đó, sau đó bạn phải đóng nó sau khi hoàn thành hoặc muốn thu nhỏ nó.

nnoremap <C-W>M <C-W>\| <C-W>_
nnoremap <C-W>m <C-W>=

Lý do cho nnoremap là tôi không quan tâm đến ánh xạ đệ quy, nhưng chỉ bản đồ cũng nên hoạt động.


1
Nếu bạn sử dụng nnoremap <C-W>M <C-W>\|<C-W>_(không có khoảng trắng sau |), thì con trỏ sẽ không di chuyển 1 trên mỗi lần phóng đại.
rsanden

1
Tôi thích điều này bằng cách sử dụng dấu gạch chéo ngược ( nnoremap <C-W>\ <C-W>\|<C-W>_). Nó cảm thấy tự nhiên với các ràng buộc mặc định |, _=.
rsanden

6

Bạn có thể nhận được cửa sổ trợ giúp ở kích thước đầy đủ mà không cần đóng / thay đổi kích thước bất kỳ cửa sổ nào khác bằng cách sử dụng

tab help {topic}

Thao tác này sẽ mở cửa sổ trợ giúp trong một tab mới, các cửa sổ khác sẽ được giữ nguyên (thực sự đã thay đổi kích thước để dòng tab có thể được hiển thị, nhưng đây chỉ là một dòng bổ sung ở trên). Bạn có thể đóng trợ giúp như bình thường: ít nhất :bw<CR><C-w>ctôi cũng có thể đóng tab mới.


5

Cài đặt plugin vim-maximizer , sau đó bạn có thể tối đa hóa cửa sổ hiện tại và khôi phục vớiF3



2

Để có được chỉ là sự giúp đỡ lên, sau đó đóng cửa sổ khác, làm như sau: :helpCTRL-WCTRL-W:close. Sau đó, bạn sẽ chỉ có sự giúp đỡ.


1

trong .vimrc của bạn, chỉ cần đặt

nmap - :res<CR>:vertical res<CR>$

Khi bạn muốn phóng to cửa sổ hiện tại, chỉ cần nhấn - trong chế độ lệnh. Nhấn = khi bạn muốn khôi phục trạng thái cuối cùng của nhiều cửa sổ


2
Đẹp nhưng = không khôi phục 'trạng thái cuối cùng'.
majkinetor

1

Bằng cách nào đó mà plugin ZoomWin không hoạt động với tôi, bây giờ tôi thấy có những plugin khác nhưng tôi đã viết cái này và mang lại cho tôi hiệu ứng chính xác mà tôi muốn (với một chút chi tiết bên dưới) :

function! ToggleZoom(zoom)
  if exists("t:restore_zoom") && (a:zoom == v:true || t:restore_zoom.win != winnr())
      exec t:restore_zoom.cmd
      unlet t:restore_zoom
  elseif a:zoom
      let t:restore_zoom = { 'win': winnr(), 'cmd': winrestcmd() }
      exec "normal \<C-W>\|\<C-W>_"
  endif
endfunction

augroup restorezoom
    au WinEnter * silent! :call ToggleZoom(v:false)
augroup END
nnoremap <silent> <Leader>+ :call ToggleZoom(v:true)<CR>

Sử dụng phím được ánh xạ (Lãnh đạo và + trong trường hợp của tôi) để chuyển đổi giữa bố cục tối đa / trước đó. Nếu bạn thay đổi sang một phần tách khác trong cùng một tab, tính năng tối đa hóa sẽ tắt.

Nếu bạn thay đổi các tab, phần tách vẫn được tối đa hóa, mặc dù bằng cách nào đó nó sẽ không bao gồm toàn bộ chiều rộng hoàn chỉnh nữa, với các cửa sổ chiều rộng được thu nhỏ sẽ lấy lại khoảng 4 cột hoặc thứ gì đó. Dù sao nó hoạt động có thể chấp nhận được đối với tôi ngay cả với điều đó.

chỉnh sửa: bằng cách nào đó nó hoạt động tốt bây giờ, chắc hẳn đã bị rối loạn theo một cách nào đó trước đây.

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.