2017-02-13 66 views
1

目前我正在試圖讓我的周圍VIM頭,到目前爲止,我學到了很多!有一兩件事,雖然我還沒有成功:同時讓VIM打開兩個文件在分割

我如何同時具有VIM打開兩個文件是否符合特定標準是什麼?

最突出的例子是Objective-C中,我通常的.h和.m文件工作。將它們放在一起顯示是合理的,因爲它們都是一個單位。

在我目前的項目,我也有類似情況。我有一個reactjs前端項目中使用的部件,像

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

如果我打開index.jsx我非常希望有styles.scss在分割開了。這是可以實現的嗎?還是有一個我還沒有找到的插件呢?

編輯: 我使用vim的我的,我把它從我的項目的根啓動方式的項目。我不認爲(但我可能在這裏錯了,我對vim相當陌生)認爲從我的項目中打開一個子文件夾,編輯,關閉vim並打開vim中的下一個子文件夾是一個很好的工作流程。 :vim可以訪問我所有的項目文件,我打開了一個特定的index.jsx文件,如果在同一個文件夾中有一個styles.scss文件,而不是在拆分文件中顯示出來。

+0

您是不是要找一個文件夾中打開所有文件?或者,你如何關聯它們? – SibiCoder

+0

@SibiCoder我是這樣說的:我在我的項目根文件夾中打開vim。每當我從我的項目中打開一個特定的jsx文件,碰巧在相同的文件夾中有一個相關的styles.scss,我希望styles.scss在一個split中打開。就像Xcode爲關聯.h和.m文件所做的一樣(如果已激活)。 – 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基本上做的非常接近。到目前爲止,這完美的作品,謝謝!但我想我應該仍然擴展a.vim啓用我想要的。 – hurrtz

0

或者,您可以嘗試打開文件夾本身。

vim src/components/Header 

這將列出Header目錄下的文件。您可以按在任何文件上輸入,vim將在緩衝區中打開該文件。要返回目錄列表按Ctrl鍵和同時

基本上按Ctrl和將帶你到最後一個緩衝區當前一個之前這是積極的。

而且,一旦你有一個文件在緩衝區打開,打開在分割窗口另一個文件中,嘗試

: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選項: -o[N] Open N windows (default: one for each file) -O[N] Like -o but split vertically
實施例:在vim -O components/Header/*垂直分割打開index.jsxstyles.scss同時。

Also checkout this question

+0

我編輯了我的問題,以反映我想要實現的更多。用vim打開一個特定的文件夾不是我的意圖。我想讓vim在整個項目文件夾中工作。您的建議似乎有點複雜,在一個有數百個組件文件夾的工作項目中...... – hurrtz