Vim:默认情况下拆分特定的文件类型

Vim:默认情况下拆分特定的文件类型,vim,git-commit,ftplugin,Vim,Git Commit,Ftplugin,在Vim中编辑Git提交时,我希望在打开时自动拆分窗口,以便在顶部窗格中编辑提交消息,同时在底部面板中保留提交更改列表 我有一个带有gitcommit.vim文件的ftplugin,用于设置一些其他Git提交特定选项,但是当我向其中添加split时,我得到了3个窗格(可能是因为第二个窗格也会拆分,然后有什么东西阻止进一步递归到无穷大?) 我还希望它切换到第二个面板,并将写有#要提交的更改:的行移动到缓冲区的顶部,以便在我执行提交修正并且消息已经很长时使用。然后,我希望它移回顶部缓冲区。我知道要键

在Vim中编辑Git提交时,我希望在打开时自动拆分窗口,以便在顶部窗格中编辑提交消息,同时在底部面板中保留提交更改列表

我有一个带有gitcommit.vim文件的ftplugin,用于设置一些其他Git提交特定选项,但是当我向其中添加
split
时,我得到了3个窗格(可能是因为第二个窗格也会拆分,然后有什么东西阻止进一步递归到无穷大?)


我还希望它切换到第二个面板,并将写有
#要提交的更改:
的行移动到缓冲区的顶部,以便在我执行提交修正并且消息已经很长时使用。然后,我希望它移回顶部缓冲区。我知道要键入什么来执行此操作,但如果可能的话,我希望它能够自动执行。

这里有一个命令,可以将其放入
~/.vim/ftplugin/gitcommit.vim
文件中:

command! -buffer -nargs=0 Changes :execute "normal! \<c-w>s\<c-w>jgg"<bar>call search('^# Changes')<bar>execute "normal! zt\<c-w>p"
命令-buffer-nargs=0更改:执行“正常!\s\jgg”调用搜索(“^#更改”)执行“正常!zt\p”
这提供了
:更改执行所需操作的
命令。我犹豫是否立即启动它,因为对于大多数提交,我怀疑您是否需要此功能


我也同意@mMontu的观点,你应该和这篇文章一样检查。

你检查过了吗?我是否理解正确?您要拆分提交窗口(
s
),通过
j
转到新拆分,然后执行搜索
/^#Changes
,将该行滚动到顶部(
zt
),然后切换回顶部拆分
k
?@PeterRincker:是,但是我如何从ftplugin.vim配置发送这些命令以进行Git提交呢?尽管这并不能回答问题:您可能也想尝试一下。