web-dev-qa-db-ja.com

Vimで分割ウィンドウをキャンセルする

ウィンドウを水平に分割しました。さて、どのようにして通常モードに戻ることができますか?つまり、開いているすべてのウィンドウをキャンセルせずに、ウィンドウを1つだけ分割することはできません。私は5を持っていますが、「終了」したくないので、分割ウィンドウから出たいだけです。

206
Sudeep

押す Control+w、その後ヒット q 一度に各ウィンドウを閉じます。

更新:一度に1ウィンドウずつ実行したくない場合は、:on(以下を参照)を含む、あなたにとってより便利なeckesの回答も検討してください。

265
Warren P

すべての分割を閉じるには、通常、on-lyに表示されるウィンドウにカーソルを置き、現在のウィンドウを作成する:onを実行しますon-ly可視ウィンドウ。覚えやすいニーモニック。


Edit::help :on はこれらのコマンドが同じであることを示しました:

  • :on
  • :only
  • CTRL-wCTRL-o
  • そしてはい、また CTRL-Wo 同じ効果があります( Nathananswered )。

これら4つはそれぞれ、アクティブなウィンドウを除くすべてのウィンドウを閉じます。

249
eckes

現在のウィンドウ以外のすべてのウィンドウを閉じるには:

CTRL+w、 o

つまり、最初に CTRL+w その後 o

55
Nathan Fellman

現在のウィンドウを閉じるための2つの選択肢は、ZZZQです。これらはそれぞれ、表示されたバッファーへの変更を保存し、保存しません。

28
Benoit

コマンド:hideは、現在フォーカスされているウィンドウを非表示にします。これがあなたが探している機能だと思います。

ウィンドウ間を移動するには、Ctrl + wに続けてナビゲーションキー(h、j、k、l、または矢印キー)を入力します

詳細については、vimで:help windowおよび:help hideを実行してください。

6
cledoux

:help opening-windowから(「ウィンドウを閉じる」を検索-/Closing a window

  • :q[uit]は、現在のウィンドウとバッファを閉じます。最後のウィンドウの場合は、vimも終了します
  • :bd[elete]現在のバッファをアンロードし、現在のウィンドウを閉じます
  • :qa[all]または:quita[ll]は、すべてのバッファーとウィンドウを閉じてvimを終了します(:qa!は変更を保存せずに強制します)
  • :clo[se]現在のウィンドウを閉じますが、バッファは開いたままにします。ウィンドウが1つしかない場合、このコマンドは失敗します
  • :hid[e]現在のウィンドウでバッファを非表示にします(詳細は:help hiddenをご覧ください)
  • :on[ly]他のすべてのウィンドウを閉じますが、すべてのバッファは開いたままにします
3
chaptuck

他の人が言ったように、これを行う方法は押すことです ctrl+w その後 o。これにより、現在のウィンドウが「最大化」され、他のウィンドウが閉じられます。 「最大化解除」できるようにしたい場合は、 ZoomWin というプラグインがあります。それ以外の場合は、最初からウィンドウ設定を再作成する必要があります。

1
psyho

見つけた ctrl + w 閉じたいウィンドウに移動して :q。これは私のために動作します。

1
dmarges

私はあなたの意図をよく理解しています。バッファも排他的に使用し、必要に応じて分割します。

以下は私の.vimrcの抜粋です

" disable macro, since not used in 90+% use cases
map q <Nop>
" q,  close/hide current window, or quit vim if no other window
nnoremap q :if winnr('$') > 1 \|hide\|else\|silent! exec 'q'\|endif<CR>
" qo, close all other window    -- 'o' stands for 'only'
nnoremap qo :only<CR>
set hidden
set timeout
set timeoutlen=200   " let vim wait less for your typing!

これは私のワークフローに非常によく合っています

qが押された場合

  • 複数のウィンドウが開いている場合は現在のウィンドウを非表示にし、そうでない場合はvimを終了します。

qoが押された場合、

  • 他のすべてのウィンドウを閉じます。ウィンドウが1つだけの場合は効果がありません。

もちろん、次のことができますその厄介な部分を関数にラップする、例えば

func! Hide_cur_window_or_quit_vim()
    if winnr('$') > 1
        hide
    else
        silent! exec 'q'
    endif
endfunc
nnoremap q :call Hide_cur_window_or_quit_vim()<CR>

Sidenote:編集にマクロを使用しないため、qを再マップし、代わりに:s:g:v、および外部テキスト処理を使用します必要に応じてコマンド、たとえば:'{,'}!awk 'some_programm'、または:norm! normal-command-hereを使用します。

1
qeatzy

さて、私はちょうど画面セッションを切り離して再接続し、私は望んでいた通常の画面に戻っています

0
Sudeep