Bagaimana cara memaksimalkan jendela terpisah?


110

Memanggil :helpdi Vim, saya mendapat halaman manual bantuan dengan jendela terpisah. Saya ingin memaksimalkan jendela manual bantuan dan menutup jendela lainnya.

Bagaimana saya bisa melakukan ini? Apa perintah Vim untuk melakukan ini?

Jawaban:


88

Dengan : bantuan [topik] Anda membuka topik yang menarik bagi Anda.
Ctrl-Wo akan meminimalkan jendela lain (hanya menyisakan jendela bantuan yang terbuka / dimaksimalkan).
(Ctrl-Wo berarti menahan Ctrl tekan W, lalu o)


39
atau,: hanya akan melakukan pekerjaan itu.
Shible

14
Dari file pengeditan, bagaimana saya bisa kembali ke manual bantuan setelah melakukan CTRL + W o?
Shible

3
@guru: C-w, ^, :buf OtherFile.txt, :sbuf Otherfile.txtdll (melihat bantuan untuk wincmd, switchbufuntuk rincian).
Lucunya,

2
@ldigas: itu adalah opini (mengejutkan). Kecuali jika Anda mengutip sumber yang memiliki reputasi baik, saya akan menganggapnya sebagai preferensi pribadi Anda. Saya biasanya tidak menggunakannya, tetapi baru-baru ini saya menemukan bahwa saya menggunakannya untuk hal-hal seperti ini (memaksimalkan sidebuffer untuk sementara; melakukan hal-hal penting seperti memiliki beberapa perbedaan berdampingan yang saling berhubungan dalam satu sesi vim). Tab juga merupakan keajaiban kegunaan dengan gvim --remote. Saya selalu menggunakan se guioptions=agimkarena saya lebih suka rendering tab seperti konsol.
lihat

23
ini akan menutup jendela lain, dan jika Anda memiliki satu atau lebih jendela di mana Anda telah membuat perubahan dan tidak disimpan, maka ini tidak akan berfungsi - juga menurut saya pertanyaannya adalah tentang memaksimalkan jendela untuk bekerja dalam waktu singkat dalam keadaan itu dan kemudian nanti kembali ke keadaan sebelumnya - dengan menutup semua jendela maka Anda harus menggunakan file sesi Anda atau secara manual membuka semua jendela lain untuk kembali
serup

133

Anda dapat menggunakan Ctrl+WT( itu modalT ) untuk memindahkan jendela yang terbuka ke tabnya sendiri.

Seperti yang disebutkan oleh orang lain Ctrl+W_/ Ctrl+W|untuk memaksimalkan dalam tata letak tab / jendela saat ini (dengan tetap memperhatikan pengaturan tinggi / lebar minimum untuk berbagai jendela lainnya).

( Ctrl+W=mengubah ukuran semua jendela ke ukuran yang sama, dengan memperhatikan pengaturan tinggi / lebar minimum)

Edit Untuk komentar

  1. mulai vim (mis. gvim /tmp/test.cpp)
  2. meminta bantuan :help various-motions- membuka jendela terpisah
  3. pindahkan bantuan ke tab terpisah dimaksimalkan: C-wT
  4. selamat membaca manual yang bagus :)
  5. pindahkan bantuan kembali ke tab asli:

    mAZZ<C-w>S`A
    
    • mA: setel tanda global A
    • ZZ: tutup buffer bantuan / tab
    • C-wS: pisahkan jendela asli
    • `A: lompat ke tanda tersimpan A

Anda dapat menghindari penggunaan tanda untuk buffer normal (non-bantuan). Beri tahu saya jika Anda tertarik.


4
Setelah mendapatkan tab dengan CTRL + WT, bagaimana saya bisa kembali ke jendela terbelah asli?
Shible

2
@guru: cukup beralih tab seperti biasa (gunakan Ctrl-PgUp, Ctrl-PgDownatau :tabnext, :tabprev). Untuk menutup baru (misalnya bantuan) tab, penggunaan ZZ, Ctrl-W, C, :q, :clo, :tabcloseatau cara lain yang Anda biasanya dekat jendela / tab
sehe

1
Tidak, bukan itu pertanyaannya. Misalkan Anda memiliki dua tab, sekarang Anda tidak menginginkan tab, Anda ingin dua buffer itu sebagai jendela terpisah. Apakah ada satu perintah untuk melakukan ini?
Shably

Mengedit pertanyaan dengan prosedur umum. ( Saya ingin menambahkan bahwa nada komentar Anda mungkin terlihat agak tidak ramah. Dalam bahasa tertulis, "No, that was not the question"mungkin terdengar sebagai teguran. Saya yakin Anda tidak bermaksud buruk )
lihat

@guru: jawaban diperbarui. Itu sedikit lebih rumit dari yang diharapkan karena buffer bantuan itu khusus (dan Anda tidak dapat menggunakan :sbufseperti yang biasanya saya sukai). Semoga ini bisa membantu
lihat

53

Anda dapat memperluas jendela ke ukuran maksimumnya menggunakan Ctrl+W_(garis bawah). Ukuran akhir dari jendela yang diperluas akan dibatasi oleh nilai winminheightopsi. Saat Anda menutup jendela bantuan, jendela Anda sebelumnya akan dikembalikan ke ukuran sebelumnya.


19
Ctrl+W o menutup jendela lain, jadi mereka pergi. Itu sebabnya saya gunakan Ctrl+W _.
Greg Hewgill

2
Bagaimana saya bisa mendapatkan kembali dua jendela asli yang terpisah dengan file pengeditan dan dengan manual bantuan?
Shible

3
The Ctrl+W =Perintah mengubah ukuran jendela sehingga mereka semua kira-kira ukuran yang sama.
Greg Hewgill

14
Untuk pemisahan vertikal, Anda sebaiknya menggunakan Ctrl+W |.
Achal Dave

2
kepada setiap jiwa tersesat yang terjadi di utas ini… untuk kembali ke tampilan terpisah, gunakan ctrl+w = // ini membuat semua jendela berukuran sama
duggi

19

Saya lebih suka menggunakan tab untuk itu. Menggunakan

:tabedit %

untuk membuka file yang dimaksimalkan di tab baru, setelah Anda selesai kembali ke pengaturan lama dengan menggunakan semua jendela

:tabclose

Saya menemukan ini solusi ideal karena ini bekerja sama dengan :cwdan plugin Tagbar. Diambil dari: vim.wikia


13

Saya suka menggunakan 'M' untuk memaksimalkan dan 'm' untuk meminimalkan.

Ini tidak akan terlihat bagus karena akan mengecilkan semua jendela terbuka lainnya yang berada di buffer yang sama, tetapi saya merasa itu lebih berguna saat berhadapan dengan tab. Jadi misalnya, alih-alih membuka tab baru untuk file itu, maka harus menutupnya setelah Anda selesai atau ingin meminimalkannya.

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

Alasan nnoremap adalah bahwa saya tidak peduli dengan pemetaan rekursif, tetapi hanya peta juga harus berfungsi.


1
Jika Anda menggunakan nnoremap <C-W>M <C-W>\|<C-W>_(tanpa spasi setelahnya |), maka kursor tidak akan bergerak sebesar 1 pada setiap pembesaran.
rsanden

1
Saya suka ini menggunakan garis miring terbalik ( nnoremap <C-W>\ <C-W>\|<C-W>_). Rasanya alami dengan binding standar |, _dan =.
rsanden

6

Anda bisa mendapatkan jendela bantuan dalam ukuran penuh tanpa menutup / mengubah ukuran jendela lain dengan menggunakan

tab help {topic}

Ini akan membuka jendela bantuan di tab baru, jendela lain akan dibiarkan apa adanya (benar-benar diubah ukurannya sehingga garis tab dapat ditampilkan, tetapi ini hanya satu baris tambahan di atas). Anda dapat menutup bantuan seperti biasa: setidaknya :bw<CR>dan <C-w>cbekerja untuk saya menutup tab baru juga.




2

Hanya untuk mendapatkan bantuan up, kemudian tutup jendela lain, melakukan hal ini: :helpCTRL-WCTRL-W:close. Maka Anda akan mendapat bantuan.


1

di .vimrc Anda, cukup tempatkan

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

Bila Anda ingin memaksimalkan jendela saat ini, cukup tekan - dalam mode perintah. Tekan = saat Anda ingin memulihkan status terakhir dari beberapa jendela


2
Bagus tapi = tidak mengembalikan 'status terakhir'.
majkinetor

1

Entah bagaimana plugin ZoomWin tidak berfungsi sama sekali untuk saya, sekarang saya melihat ada plugin lain tetapi saya sudah menulis ini dan memberi saya efek tepat yang saya inginkan (dengan detail kecil di bawah) :

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>

Gunakan kunci yang dipetakan (Pemimpin dan + dalam kasus saya) untuk beralih antara tata letak dimaksimalkan / sebelumnya. Jika Anda mengubah ke pemisahan lain di tab yang sama, pemaksimalan dinonaktifkan.

Jika Anda mengubah tab, pembagian tetap dimaksimalkan, meskipun entah bagaimana itu tidak akan menutupi lebar penuh penuh lagi, dengan jendela yang diperkecil lebar mendapatkan kembali sekitar 4 kolom atau sesuatu. Pokoknya itu berhasil diterima untuk saya bahkan dengan keanehan kecil itu.

edit: entah bagaimana itu berfungsi dengan baik sekarang, pasti sudah kacau dalam beberapa cara sebelumnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.