加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Vim – 在mercurial中提交时显示差异;

发布时间:2020-12-15 22:12:53 所属栏目:安全 来源:网络整理
导读:在我的.hgrc中,我可以提供一个编辑器或命令来启动一个带有提交选项的编辑器. 我想编写一个启动$hg ci的方法或别名,它不仅会在Vim中打开消息,还会分割窗口并打印出$hg diff. 我知道我可以使用{command}选项为vim提供参数.因此启动$vim“vsplit”会进行拆分,但
在我的.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 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
我的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读