2013-02-02 20 views
5

vimを起動した後に:Vexがあるとします。 tを押して、Netrwウィンドウではなく反対のウィンドウにタブを追加したいと思っています。これは可能ですか?反対側の垂直ウィンドウでタブにNetrwファイルを開く

Pを押すと分割ウィンドウにファイルを開くことができますが、私のNetrwウィンドウが表示されている間に垂直分割のファイルをタブすることができるようにしたいと思います - SublimeやKomodoのように。

可能ですか?

はい、私は:h netrwを磨いてきました!

答えて

2

Vimの「タブ」と他のすべてのプログラムで見つかる「タブ」を混同しているようです。

他の実装とは異なり、Vimのタブはバッファに結びついていません。 Vimでは、「タブ」は「ワークスペース」と呼ばれるように振る舞います.1つまたは複数のウィンドウをまとめたものです。これらのウィンドウにはバッファが表示される可能性があり、複数のタブで複数のウィンドウに表示された同じバッファを使用することができます。

これを念頭に置いて、非常にのように使いたいと思っています。 「タブ」はファイルを表しておらず、は別の「タブ」にジャンプしますと別のファイルにジャンプしますまったくありません。

:Vexで作成されたウィンドウは通常のウィンドウです。他のすべてのウィンドウと同様に、それは「タブ」に含まれ、「タブ」の外側には存在できません。そして、あなたは窓の中に "タブ"を持つことはできません。

だから、基本的に、あなたが求めるのはです。

あなたがMac上で、この「他のエディタのような機能は、」あなたのための重要な本当に(Vimの道を受け入れる、と言うよりも、もっと重要な)、あなたは「定期的に追加されますthis MacVim forkを試みることができる場合には"ファイルエクスプローラ外部のバッファ/ウィンドウ/タブのトリオ。また、Vimの周りにIDEを構築しようとするPIDAを試すこともできます。別のファイルエクスプローラを含む。

1

romainlによると、タブはファイル(またはバッファ)ではありません。だから、あなたの質問を再解釈して、「私はtを押して、ファイルを反対のウィンドウに表示したいと思っています...」。次に、私は読んでお勧めします:help netrw-C。あなたが本当に「追加」を意味し「出現」しない場合は、それがより関与し、どのようにするかを理解する努力を費やす前に、それがあなたが本当に意味していたことを知りたいと思います。最新のnetrw(今日はv153f)には、上記のヘルプリファレンスに記載されている追加のオプションがあります。

7

ほぼ.vimrcの再マップとオプションがあります。

それはこのhttp://i.imgur.com/rUf19SF.png

使用法のようになります。

  1. 実行VIM。
  2. ヒットshift enter。 netrwをサイドバー(右に小さな分割ウィンドウ)として開き、フォーカスを合わせます。
  3. 通常通りブラウズし、enterを押してファイルを開きます。これはデフォルトで左側のウィンドウで開き、フォーカスします。
  4. ヒットcontrol-w control-w。これはnetrwに再び焦点を合わせます。
  5. いつものようにブラウズしますが、今度はcontrol-enterを押してファイルを開きます。これにより、netrwサイドバーも含まれる新しいタブで開くことができます。

の.vimrcの設定:

" netrw magic 
" enable mouse usage. makes it easier to browse multiple tabs 
set mouse=a 
" hide netrw top message 
let g:netrw_banner=0 
" tree listing by default 
let g:netrw_liststyle=3 
" hide vim swap files 
let g:netrw_list_hide='.*\.swp$' 
" open files in left window by default 
let g:netrw_chgwin=1 
" remap shift-enter to fire up the sidebar 
nnoremap <silent> <S-CR> :rightbelow 20vs<CR>:e .<CR> 
" the same remap as above - may be necessary in some distros 
nnoremap <silent> <C-M> :rightbelow 20vs<CR>:e .<CR> 
" remap control-enter to open files in new tab 
nmap <silent> <C-CR> t :rightbelow 20vs<CR>:e .<CR>:wincmd h<CR> 
" the same remap as above - may be necessary in some distros 
nmap <silent> <NL> t :rightbelow 20vs<CR>:e .<CR>:wincmd h<CR> 

警告:各タブの

netrwの "サイドバー" は独立して、タブ内の現在のディレクトリがないかもしれないという意味別のタブでも同じです。提案?すべての "サイドバー"ウィンドウでnetrwバッファを使用することを考えましたが、netrwはディレクトリを変更するたびに新しいバッファを使います。

+0

このサイドバーをvim loadで開くことはできますか? 'autocmd VimEnter *:Vexplore'は異なるnetrwを与えます。 – Lanti

+2

@Lantiはい、ちょうど2つの行に 'autocmd VimEnter * rightbelow 20vs'と' autocmd VimEnter * e .'のすぐ下に分割します。 – unione

+0

ありがとう、アップしてください!よく働く!このコードはNetrwの最も素晴らしいソリューションの1つです! 1.私がバグをするもう一つの事は、新しいタブで新しいファイルを開くと、まだnetrw自体が開いていることです。 ENTERまたはCTRL + ENTERでファイルを開くときに、新しいタブごとに新しいnetrwを開かないように設定できますか? 2.バックグラウンドで新しいファイルを開くためのショートカットを作成することは可能ですか? netrwを使わずに、バックグラウンドで本当に速くたくさんのファイルを開くと便利です。 – Lanti

関連する問題