回答:
Control+を押しw、次にを押しqて、一度に各ウィンドウを閉じます。
更新::on 一度に1つのウィンドウで実行したくない場合は、以下のように、より役立つ可能性のあるeckes回答も検討してください。
hiddenしかし、設定は役立つようです。しかし、私が意味したことは、どうやって!ショートカットに?「Cw!q」、「Cw q!」、「!Cw q」、「C-!w q」ですか?私はそれらのどれもないと思いますが、私はすでに新しいバッファを作成する方法を忘れていたので、これは読者のための練習です。
すべてのスプリットを閉じるには、通常、オンに表示されるウィンドウにカーソルを置き:on、現在のウィンドウをオンに表示されるウィンドウにします。覚えやすいニーモニック。
編集: :help :onこれらのコマンドが同じであることを示しました:
これらの4つはそれぞれ、アクティブなウィンドウを除くすべてのウィンドウを閉じます。
:onは応答しE445: Other window contains changes、他のウィンドウを閉じません。たとえば、私は通常、新しいウィンドウを作成し、そこにヤンクしたいファイルを読み込みます。この場合、Vimは他のウィンドウに未書き込みの変更があると見なします。そのような場合は、を使用:on!して強制的に閉じます。
現在のウィンドウ以外のすべてのウィンドウを閉じるには:
CTRL+ w、o
つまり、最初にCTRL+ w、次にoです。
CTRL+W o誤って入力したものを元に戻す方法もあるのでしょうか。
現在のウィンドウを閉じるための2つの代替方法はZZ、およびですZQ。これらは、それぞれ、表示されたバッファへの変更を保存するか、保存しません。
Zはドイツ人なので嫌いです。(スポイラー:DE / EN設定を頻繁に切り替える場合のキーボードレイアウト)
から: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] 他のすべてのウィンドウを閉じますが、すべてのバッファは開いたままにします私はあなたの意図をよく理解しています。バッファも排他的に使用し、必要に応じて分割することもあります。
以下は私の抜粋です .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>
追記:再マップI q、私が代わりに使用し、編集するためのマクロを使用しないので:s、:g、:v、および必要に応じて外部テキストは、コマンドの処理、例えば、:'{,'}!awk 'some_programm'または使用:norm! normal-command-here。