2017-02-13 2 views
1

現在、私はvimを頭に入れようとしています。vimで2つのファイルを分割して同時に開くことができます

vimが特定の条件を満たす場合、2つのファイルを同時にオープンするにはどうしたらよいですか?

最も顕著な例はObjective-Cで、通常は.hと.mファイルで動作します。それらは両方ともユニットを形成するので、それらを分割して一緒に表示することは理にかなっています。

私の現在のプロジェクトでも同様の状況があります。私はindex.jsx開くと、私は非常に多く、あまりにも、styles.scssが分割で開くがしたい

src/ 
    components/ 
    Header/ 
     index.jsx 
     styles.scss 

のように、コンポーネントを使用してreactjsとフロントエンドのプロジェクトを持っています。これは達成可能ですか?それとも、まだ見つけられていないプラグインがありますか?

編集: 私は自分のプロジェクトのルートからプロジェクトを開始する方法で私のプロジェクトにvimを使用します。私は、私のプロジェクトからサブフォルダを開いて、編集して、vimを閉じ、vimの次のサブフォルダを開くのは良いワークフローだとは思っていません(しかし、私はここで間違っています。 :vimはすべてのプロジェクトファイルにアクセスできますが、特定のindex.jsxを開いて、同じフォルダ内にstyles.scssがある場合は、そのファイルを分割して表示します。

+0

は、フォルダ内のすべてのファイルを開くことを意味していましたか?または、それらをどのように相関させますか? – SibiCoder

+0

@SibiCoder私はそれをこのように意味しました:私は自分のプロジェクトのルートフォルダにvimを開いています。そして、私のプロジェクト内で特定のjsxファイルを開いたときに、同じフォルダー内にstyles.scssが関連付けられている場合は、そのstyles.scssを分割して開きます。 .hと.mファイルを関連付けるためにXcodeが(起動されている場合)と同様です。 – hurrtz

+1

実際はCtrlpまたはfzfプラグインを調べます。私はvimで最大のプロではありませんが、常にあなたのvimを閉じることは私の痛みのように聞こえます。私はプロジェクトを切り替えるときだけ私はそれを閉じます。プラグインがなくても、新しいファイルを開くためにeを使うのはなぜですか? –

答えて

2

自動コマンドでソリューション、あなたのvimrcに置くために:

function! CheckAndSplit(filename) 
    if !filereadable(a:filename) | return | endif 
    exe 'split' a:filename 
endf 

au BufReadPost *.m call CheckAndSplit(expand('%:r').'.h') 
au BufReadPost index.jsx call CheckAndSplit(expand('%:p:h').'/styles.scss') 
+0

これはa.vimが基本的にするものに非常に近いです。これまでのところ、これは完全に動作します、ありがとう!しかし、私はまだ私が必要とするものを可能にするために.vimを拡張するべきだと思う。 – hurrtz

0

また、フォルダ自体を開こうとすることもできます。

vim src/components/Header 

これは、Headerディレクトリの下にファイルを一覧表示します。 を押すことができます。任意のファイルにと入力すると、vimはそのファイルをバッファで開きます。ディレクトリ一覧に戻るには、Ctrlとを同時に押してください。

基本的にCtrlキーとは、現在の1の前にアクティブであった最後のバッファが表示されます。 1つのファイルを分割ウィンドウ内の別のファイルを開くには、バッファ内にオープンした後

また、私は、これはあなたを助けることを願っています

:vsplit filename 

それとも

:split filename 

を試してみてください。

+0

私は何かを入力しなければならない、またはこれ以上のものを入力しなければなりません。 vimを使用すると私はかなり怠惰になり、私はそれを尊重するつもりです;)私は、関連するファイルを自分のパートからの追加のキーストロークなしに絶対に開くようにします。しかし、提案に感謝します! – hurrtz

1

?あなたはプラグインが必要だと思います。手動で?

:split index.jsx | split styles.css 

か、あなたのvimrcでこのような何かを試みることができるが、それはuntestetであり、いくつかの例外処理が必要になります:

autocmd BufReadPost *.jsx :sp %:h/styles.css<CR> 
+0

BufReadPostは非常に有望に見える、私はそれを見て、この作品が表示されます! – hurrtz

+0

@yolenoyerのコードを見ると、必要な完全なlogixのように見えます。 –

1

vimのオプションを参照してくださいはい、あなたはこのような一緒にちょうどパイプそれらをすることができます:
例:vim -O components/Header/*は、垂直分割で同時にindex.jsxstyles.scssを開きます。

Also checkout this question

+0

私は私が達成しようとしていることについてもう少し反映するために私の質問を編集しました。 vimで特定のフォルダを開くことは私の意図ではありません。私はvimをプロジェクトフォルダ全体に渡って動作させたい。あなたの提案は、何百ものコンポーネントフォルダを持つ作業プロジェクトでは少し複雑に思えます... – hurrtz

関連する問題