我目前正试图绕过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 :(得分: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')
答案 1 :(得分:1)
自动?那么我认为你需要一个插件,或者写一个。手动?是的,你可以像这样把它们一起管道:
:split index.jsx | split styles.css
或者你可以在你的vimrc中尝试这样的东西,但它是untestet,并且需要一些异常处理:
autocmd BufReadPost *.jsx :sp %:h/styles.css<CR>
答案 2 :(得分:1)
请参阅vim选项:
-o[N] Open N windows (default: one for each file)
-O[N] Like -o but split vertically
示例:vim -O components/Header/*
在垂直拆分中同时打开index.jsx
和styles.scss
。
答案 3 :(得分:0)
或者,您可以尝试打开文件夹本身。
vim src/components/Header
这将列出Header
目录下的文件。您可以在任何文件上按 Enter ,vim将在缓冲区中打开该文件。要返回目录列表,请同时按 Ctrl 和 6 。
基本上 Ctrl 和 6 将带您到当前缓冲区之前的最后一个缓冲区。
此外,一旦在缓冲区中打开了一个文件,要在拆分窗口中打开另一个文件,请尝试
:vsplit filename
或
:split filename
我希望这会对你有所帮助。