我喜欢使用带有 vscode-vim 扩展的 VS Code,因为我无需鼠标即可完成大部分编辑工作。但是每当我查看差异视图(通过单击 SCM/git 窗格中发生更改的文件)或比较两个文件的编辑器(通过运行“比较活动文件与...”命令)时,我需要使用鼠标左右两侧切换(即“旧”和“新”版本的变化)。这很烦人,因为我经常比较两个文件,并希望通过将更改的片段从一个文件复制到另一个文件来合并它们,这需要我在比较视图中来回切换。有谁知道是否有键盘快捷键,或者我可以为此绑定新键盘快捷键的命令?
编辑(2020年11月11日,感谢@Mark):
workbench.action.compareEditor.focusPrimarySide
、workbench.action.compareEditor.focusSecondarySide
和 workbench.action.compareEditor.focusOtherSide
已添加到 VS Code。应该是 v1.52
现在这是一个正式的功能请求,所以如果您想在 VS Code 中看到它,请投票: https://github.com/microsoft/vscode/issues/95068
如果您要在两个文件之间进行
compare,请参阅@psquid 的答案中的
compareEditor
命令。 但是,如果您正在进行比较 - 就像在 SCM/git 视图中单击更改的文件一样,那么您需要这个新命令:
Diff Editor: Switch Sides // there is no default keybinding
diffEditor.switchSide
为此,您需要启用此设置:
Diff Editor > Experimental: Use Version 2
该功能在 Insiders Build v1.81 中默认启用,但在稳定版 v1.80 中禁用(也可能在 2023 年 8 月上旬发布的稳定版 v1.81 中默认禁用)。
更改焦点时,两侧的光标都会重置为之前的状态。我发现这真的很烦人。以下按键绑定在更改焦点时将光标重置到当前视图的中心。
注意:为此需要多命令扩展。
https://marketplace.visualstudio.com/items?itemName=ryuta46.multi-command
"key": "alt+1",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"workbench.action.compareEditor.focusOtherSide",
{
"command": "cursorMove",
"args": {
"to": "viewPortCenter"
}
}
]
},
"when": "textCompareEditorActive"
用
tab
切换
{
"key": "tab",
"command": "diffEditor.switchSide",
"when": "inDiffEditor"
}