2016-05-18 11 views
4

私はVIMで働いているとき、私は時々、このような分割されたメニューのセットアップで終わるが:tagbarが閉じている場合でも、私は別のファイルを比較するときvim quickfix list:位置を操作しますか?

############################################### 
#   |       |  # 
#   |       |  # 
# NERDTree |  main window  | tagbar # 
#   |       |  # 
#   |       |  # 
############################################### 

、私は例えば、同等の設定になっている可能性があり。

しかし、vimgrepコマンドを実行すると、タグバー(またはその他の右側の分割)が閉じられたときに結果(クイックフィックスリストに表示される)がメインウィンドウの下にのみ表示されます。

したがって、この設定が正しくたびに動作します:

############################################### 
#   |         # 
#   |         # 
# NERDTree |   main window    # 
#   |         # 
#   |         # 
#   |__________________________________# 
#   |         # 
#   | quickfix list: vimgrep results # 
#   |         # 
############################################### 

...これはそうではない:

############################################### 
#   |       |  # 
#   |       |  # 
# NERDTree |  main window  | tagbar # 
#   |       |  # 
#   |       |________# 
#   |       | quick- # 
#   |       | fix # 
#   |       | list: # 
#   |       | vimgrep# 
#   |       | results# 
############################################### 

どのように私はvimgrepを含む(常にオープンにQuickFixリストを強制することができます結果)メインウィンドウ以下?

メインウィンドウの右に別の分割ウィンドウがない場合は、(メインウィンドウの下に)正しく表示されます。 メインウィンドウの右側に分割がある場合、vimgrepコマンドは常にquickfixを開きます。/

vimgrepコマンドで現在カーソルの下にある単語を検索します):

nnoremap some-key :execute "vimgrep /\\<" . expand("<cword>") . "\\>/j ".expand("%") <Bar> cw<CR> 

...私がvimgrepで行っていることを示すためです。

+0

これが実行可能かどうかはわかりませんが、フォーカスがあるバッファを選択している可能性があります。したがって、キーマッピングをヒットしたときにメインウィンドウにいる場合は、それが機能するはずです。 –

+0

残念ながら、メインウィンドウ/バッファがフォーカスされているときにも起こります:/ – daniel451

答えて

2

悲しいことに、Vimにはウィンドウ(分割)だけの概念がありません。project drawer Quickfixリストを開くためのコマンドを使用した後。 :copenまたは:cwindowの場合は、NerdTreeとTagbarを閉じて開いておくのが最善でしょう。

注:NERDTreeまたはTagbarプラグインがないため、このコマンドはテストしていません。これはおそらく望ましくないTagbarウィンドウにも焦点を合わせます。

また、タグバーとnerdtreeを使用しない限り、タグバーとnerdtreeの両方を閉じたままにして、ワークフローを簡素化することもできます。これは、タグやファイル構造のいずれかが比較的珍しい(おそらく時間の10%)かどうかを確認する必要があるため、一部のワークフローでは理にかなっています。タグの場合は、タグバーを完全に避け、:tagコマンドを直接使用するか、シンボル上にある場合は<c-]>を使用してください。 Nerdtreeは、この問題を回避するためにnetrwと同じ方法で使用できます(Oil and vinegar - split windows and the project drawerを参照)。私はポストでこれらの問題について話します:Files, Buffers, and Splits Oh My!

個人的に私はNerdTreeやTagbarなどを使用しません。私は一度に1-2分割を開くことを好む。私はprojectionist.vimCtrlP:findのようなファジィファインダを使うか、本当にnetrwを使わなければならないのですか?

0

あなた.vimrcに全幅にこのコードを開くためにquickfixを強制することができます。

augroup DragQuickfixWindowDown 
    autocmd! 
    autocmd FileType qf wincmd J 
augroup end 

それは頼まれたものを今ですが、私が得ることができるとして、それに近いです。

関連する問題