在 Visual Studio Code 中切换视图的指南

在 Visual Studio Code 中切换视图的指南
在 Visual Studio Code 中切换视图的指南

在 VS Code 中管理文件视图:

过去,在 Visual Studio Code 中使用“Git:打开更改”命令允许用户在查看更改和原始文件之间无缝切换。这种高效的工作流程使开发人员能够轻松快速地恢复到他们的编码环境。

然而,最近的更新改变了这种行为,导致用户感到沮丧。本文探讨了替代命令和方法,以帮助您跳回文件的未更改视图,确保您保持高效的开发过程。

命令 描述
vscode.window.activeTextEditor 检索 Visual Studio Code 中当前活动的文本编辑器。
uri.with({ scheme: 'git', query: 'diff' }) 修改当前文档的 URI 以访问 Git diff 视图。
vscode.workspace.openTextDocument 在工作区中打开一个文本文档,由其 URI 指定。
vscode.window.showTextDocument 在编辑器窗口中显示指定的文本文档。
context.subscriptions.push 将一次性资源添加到扩展的订阅中,确保正确的清理。
vscode.commands.registerCommand 注册可通过命令面板或键绑定调用的命令。
uri.with_(scheme='git', query='diff') 用于修改 URI 以访问 Git diff 视图的 Python 等效项。

了解脚本功能

上面创建的脚本旨在恢复 Visual Studio Code 中更改视图和原始文件视图之间的切换功能。 JavaScript 脚本使用 vscode.window.activeTextEditor 命令检索当前活动的文本编辑器。然后它使用以下命令修改当前文档的 URI uri.with 访问 Git diff 视图的方法。如果 Git diff 视图已打开,脚本会尝试通过打开文本文档来恢复到原始文件 vscode.workspace.openTextDocument 并使用显示它 vscode.window.showTextDocument

Python 脚本遵循类似的逻辑,通过 Python 扩展利用 Visual Studio Code 的 API。它检索活动文本编辑器并修改 URI 以访问 Git diff 视图 uri.with_。然后,该脚本尝试打开修改后的 URI 并显示文档。如果失败,则会重新打开并显示原始文档。两个脚本都将其命令注册为 vscode.commands.registerCommand 并将它们添加到扩展的订阅中以进行适当的清理,确保在开发过程中以有效的方式在文件视图之间切换。

在 Visual Studio Code 中恢复以前的文件视图

使用 JavaScript 和 Visual Studio Code API

// This script uses the Visual Studio Code API to toggle between the changes view
// and the original file view for the currently open file.

const vscode = require('vscode');

function activate(context) {
  let disposable = vscode.commands.registerCommand('extension.toggleFileView', function () {
    const editor = vscode.window.activeTextEditor;
    if (editor) {
      const uri = editor.document.uri;
      const gitUri = uri.with({ scheme: 'git', query: 'diff' });

      vscode.workspace.openTextDocument(gitUri).then(doc => {
        vscode.window.showTextDocument(doc, { preview: true });
      }).catch(err => {
        vscode.workspace.openTextDocument(uri).then(doc => {
          vscode.window.showTextDocument(doc, { preview: true });
        });
      });
    }
  });

  context.subscriptions.push(disposable);
}

function deactivate() {}

module.exports = {
  activate,
  deactivate
};

有效地在文件视图之间切换

将 Python 与 VS Code API 结合使用

# This script uses the Visual Studio Code API via a Python extension to toggle
# between the changes view and the original file view for the currently open file.

import vscode

def activate(context):
    def toggle_file_view():
        editor = vscode.window.active_text_editor
        if editor:
            uri = editor.document.uri
            git_uri = uri.with_(scheme='git', query='diff')

            try:
                vscode.workspace.open_text_document(git_uri).then(lambda doc: vscode.window.show_text_document(doc, preview=True))
            except:
                vscode.workspace.open_text_document(uri).then(lambda doc: vscode.window.show_text_document(doc, preview=True))

    context.subscriptions.append(vscode.commands.register_command('extension.toggleFileView', toggle_file_view))

探索在 VS Code 中查看文件的替代方法

除了使用脚本在 Visual Studio Code 中的更改和原始文件视图之间切换之外,还有可以增强此功能的内置扩展和插件。例如,像“GitLens”这样的扩展提供了丰富的功能来管理 Git 存储库,包括查看文件历史记录和更改。这些工具可以帮助开发人员更有效地在文件的不同版本之间导航。

另一种方法是使用键盘快捷键并自定义它们以适合您的工作流程。通过创建自定义键绑定,您可以简化开发流程并在不同视图和文件之间快速切换。了解这些内置工具和扩展可以极大地提高您的工作效率并确保流畅的开发体验。

VS Code 文件视图的常见问题和解决方案

  1. 使用后如何查看原文件 Git: Open Changes
  2. 您可以创建自定义命令或使用“GitLens”之类的扩展来切换回原始文件视图。
  3. 在 Git diff 视图中打开当前文件的命令是什么?
  4. 命令是 vscode.window.showTextDocument 将 URI 修改为包含 scheme: 'git'query: 'diff'
  5. 我可以自定义键盘快捷键来切换 VS Code 中的视图吗?
  6. 是的,您可以在设置中自定义按键绑定,以创建在不同视图之间切换的快捷方式。
  7. 是否有扩展程序可以帮助查看文件更改?
  8. 是的,像“GitLens”这样的扩展提供了管理和查看文件更改的广泛功能。
  9. 如何在不关闭编辑器的情况下恢复到原始文件视图?
  10. 您可以使用脚本来切换视图或使用文件资源管理器手动切换回来。
  11. 有什么用 vscode.workspace.openTextDocument
  12. 此命令在工作区中打开一个文本文档,允许您查看和编辑它。
  13. 如何确保正确清理扩展中的命令?
  14. 通过添加命令 context.subscriptions.push,您确保在停用扩展程序时正确处置它们。
  15. 我可以同时查看多个文件的更改吗?
  16. 是的,您可以打开多个编辑器或使用拆分视图一次查看多个文件的更改。
  17. 如果修改后的 URI 无法打开 diff 视图怎么办?
  18. 该脚本可以捕获此错误并恢复打开原始文件 URI。

关于管理文件视图的最终想法

在 Visual Studio Code 中有效管理文件视图对于顺利的开发工作流程至关重要。虽然内置切换功能 Git: Open Changes 更改后,开发人员可以使用自定义脚本或扩展来恢复此功能。通过修改 URI 并利用 API 命令,可以在差异视图和原始文件之间无缝切换。

此外,理解和利用诸如 GitLens 自定义键盘快捷键可以进一步提高工作效率。这些策略确保开发人员可以保持高效且有组织的工作流程,最终带来更好的编码体验和结果。