【问题标题】:Isn't there a way to jump between conflicts in VSCode?没有办法在 VSCode 中的冲突之间跳转吗?
【发布时间】:2018-02-17 21:32:32
【问题描述】:

尽管我在谷歌上搜索,当您在 冲突模式 下查看文件时(打开标记为 ( C)在源代码控制面板中,其中显示了Accept Current Change | Accept Incoming Change | etc 菜单)。

注意:这与比较模式不同,比较模式中添加和删除用红色和绿色标记,F7 或箭头起作用。

【问题讨论】:

    标签: visual-studio-code


    【解决方案1】:

    您正在寻找这些命令:

    // merge-conflict.next
    // merge-conflict.previous
    

    所以你可以在你的 keybindings.json 文件中加入这样的内容:

    {
        "key": "<your key here>",
        "command": "merge-conflict.next"
    },
    

    【讨论】:

    • 任何人都知道这是否可以限制为仅当合并视图聚焦时?我想我只需要添加 when 参数,但不确定如何在 vscode 内部调用该视图。
    • textCompareEditorVisible 是差异视图。但是冲突可以出现在任何编辑器中,而不仅仅是差异视图。您可以在此处查看其他 when 子句上下文:code.visualstudio.com/docs/getstarted/…
    • 这些只对当前文件进行操作,用处不大。
    【解决方案2】:

    搜索“HEAD”并使用 F3 移动到下一个冲突,使用 Shift+F3 移动上一个冲突!

    【讨论】:

    • 虽然在技术上是正确的:这不是问题要问的。这是一个次优的解决方案
    • @GeorgeWL 我同意这篇文章没有回答问题所在,但在我看来它“简单而愚蠢”足以让我喜欢它。 :-)
    • @yaobin 反正我自己我认为它绝对回答了问题所在! “难道没有办法在 VSCode 中的冲突之间跳转吗?”——这种非常好的横向思维怎么不能回答这个问题? :)
    【解决方案3】:

    用于提供键盘快捷键的 VS Code,但已被删除。您可以自己恢复它们,只需从此处复制它们:https://github.com/microsoft/vscode/commit/1de69f4d8d79f370d22f6720b54b7f4a140c60ca

    【讨论】:

    • 它们仍然存在,只是移动了它们
    • 把它们移到哪里了?
    • @OliverJosephAsh 命令仍然存在,只是默认没有键绑定。
    • 没错,我从来没有说过命令不存在,只是删除了键盘快捷键。
    【解决方案4】:

    总结其他答案,有两种很好的方法:

    • 只需使用search functionality,并搜索大量&gt;&lt;,例如&gt;&gt;&gt;&gt;&gt;。然后使用 F3/Shift+F3 (或 Enter/Shift+Enter) 以更快地导航到下一个/上一个冲突。

    • Add key bindings 用于相应的命令。最初由 Microsoft and then removed 添加的那些实际上很好,而且它们似乎与默认架构不冲突,至少在 Windows 上是这样:

    {   
      "command": "merge-conflict.next", 
      "when": "editorTextFocus",    
      "key": "alt+m down"   
    },  
    {   
      "command": "merge-conflict.previous", 
      "when": "editorTextFocus",    
      "key": "alt+m up" 
    },  
    {   
      "command": "merge-conflict.accept.selection", 
      "when": "editorTextFocus",    
      "key": "alt+m enter"  
    },  
    {   
      "command": "merge-conflict.accept.current",   
      "when": "editorTextFocus",    
      "key": "alt+m 1"  
    },  
    {   
      "command": "merge-conflict.accept.incoming",  
      "when": "editorTextFocus",    
      "key": "alt+m 2"  
    },  
    {   
      "command": "merge-conflict.accept.both",  
      "when": "editorTextFocus",    
      "key": "alt+m 3"  
    }
    

    【讨论】:

      【解决方案5】:

      对于 mac,我使用这个:

      Users/{USER}/Libary/Application Support/Code/User/keybindings.json

      [
        {
          "key": "ctrl+m",
          "command": "merge-conflict.next",
          "when": "editorTextFocus"
        }
      ]
      

      一个很好的命令,让 mac 可以转到当前文件中的下一个合并冲突 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 2019-08-30
        • 1970-01-01
        • 1970-01-01
        • 2014-04-01
        • 1970-01-01
        相关资源
        最近更新 更多