Vim – 在mercurial中提交时显示差异;
在我的.hgrc中,我可以提供一个编辑器或命令来启动一个带有提交选项的编辑器.
我想编写一个启动$hg ci的方法或别名,它不仅会在Vim中打开消息,还会分割窗口并打印出$hg diff. 我知道我可以使用{command}选项为vim提供参数.因此启动$vim“vsplit”会进行拆分,但任何其他选项都会转到第一个打开的窗口.所以我假设我需要一个特定的功能,但我没有编写自己的Vim脚本的经验. 该脚本应该: >使用空缓冲区打开新的垂直拆分(可能使用vnew) 我写过这样的功能: function! HgCiDiff() vnew :.!hg diff set ft=diff endfunction 在.hgrc我添加了选项:editor = vim“HgCiDiff()” 它有点工作,但我希望分裂的窗口在右侧(现在它在左侧打开)并且mercurial消息将是聚焦窗口.另外:wq可以设置为临时快捷方式:wq< CR>:q! (假设mercurial消息是重点). 有什么建议让这个更有用而且不那么厚实? 更新:我发现vim split guide所以改变vnew与右下角vnew在右侧打开差异. 解决方法
所以我扩展了自己的代码:
function! HgCiDiff() "In .hgrc editor option I call vim "+HgCiDiff()" "It opens new split with diff inside rightbelow vnew :.!hg diff set ft=diff saveas! /tmp/hgdiff.txt execute "normal &;c-w>w" endfunction 然而它错过了:wq映射为:wqa,但使用:wqa并不那么难. 我的vimrc的来源位于:http://hg.jackleo.info/vim-configs/src/08df5cb9d143/vimrc 更新:根据Randy Morris的建议,我更新了我的代码,现在它可以正常工作.谢谢!随着时间的推移,还增加了一些额外的功能. function! HgCiDiff() "In .hgrc editor option I call vim "+HgCiDiff()" "It opens new split with diff inside rightbelow vnew setlocal buftype=nofile :.!hg diff setlocal ft=diff wincmd p setlocal spell spelllang=en_us cnoremap wq wqa cnoremap q qa start endfunction (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |