Jac*_*Leo 4 vim diff mercurial hook commit
在我的.hgrc我可以提供一个编辑器或命令来启动一个包含提交选项的编辑器.
我想编写一个启动的方法或别名$ hg ci,它不仅会在Vim中打开消息,还会分割窗口并打印出来$ hg diff.
我知道我可以通过使用+{command}选项为vim提供参数.因此启动$ vim "+vsplit"会进行拆分,但任何其他选项都会转到第一个打开的窗口.所以我假设我需要一个特定的功能,但我没有编写自己的Vim脚本的经验.
该脚本应该:
vnew可能) :.!hg diff:set ft=diff 我写过这样的功能:
function! HgCiDiff()
vnew
:.!hg diff
set ft=diff
endfunction
Run Code Online (Sandbox Code Playgroud)
在.hgrc我添加选项:editor = vim "+HgCiDiff()"
它有点工作,但我希望分裂的窗口在右侧(现在它在左侧打开)并且mercurial消息将是聚焦窗口.也:wq可以设置为临时快捷方式:wq<CR>:q!(假设mercurial消息是重点).
有什么建议让这个更有用而且不那么厚实?
更新:我发现vim分裂指南如此改变vnew,rightbelow 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
Run Code Online (Sandbox Code Playgroud)
然而它错过了:wq映射:wqa,但使用:wqa并不那么难.
我的vimrc的来源就设在这里:http://hg.jackleo.info/vim-configs/src/08df5cb9d143/vimrc
我hgrc的来源就设在这里:http://hg.jackleo.info/home-configs/src /22f5fb47a7d2/.hgrc
更新:根据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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1795 次 |
| 最近记录: |