在我的
我想编写一个方法或别名来启动
我知道可以使用
脚本应该:
在
.hgrc
文件中,我可以提供一个编辑器或命令来在提交时启动编辑器选项。我想编写一个方法或别名来启动
$ hg ci
,它不仅会在Vim中打开消息,还会分割窗口并打印出$ hg diff
。我知道可以使用
+{command}
选项向vim传递参数。因此,启动$ vim "+vsplit"
会分割窗口,但是任何其他选项都会进入第一个打开的窗口。因此,我认为需要一个特定的函数,但我没有编写自己的Vim脚本的经验。脚本应该:
- 使用空缓冲区打开新的垂直分割(可能使用
vnew
) - 在空缓冲区中启动
:.!hg diff
- 将空缓冲区文件类型设置为diff
:set ft=diff
function! HgCiDiff()
vnew
:.!hg diff
set ft=diff
endfunction
在
.hgrc
文件中,我添加了选项:editor = vim "+HgCiDiff()"
。它有点起作用,但我希望分割窗口在右侧(现在是左侧打开),并且Mercurial消息应该成为焦点窗口。此外,:wq
可以设置为临时快捷键:wq<CR>:q!
(假设Mercurial消息是焦点)。如何使其更加实用且不那么笨重?更新:我找到了vim分割指南,因此将vnew
更改为rightbelow vnew
将在右侧打开差异。
silent! setlocal ft=diff previewwindow bufhidden=delete nobackup noswf nobuflisted nowrap buftype=nofile
这样的操作,而不仅仅是set ft=diff
(来自~/.vim/ftplugin/svn.vim
)。此外,最好在编辑与/tmp/hg-editor-*.txt
匹配的文件时运行它,即将其设置为自动命令。 - Marius Gedminas