gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:50:13 26 4
gpt4 key购买 nike

在我的 .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如此变化 vnewrightbelow 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

    关于Vim - 在 mercurial 中显示提交时的差异;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8009333/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com