2017-02-13 62 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