How to Use the Command 'code' (with examples)
Visual Studio Code, often referred to simply as “VS Code,” is a versatile and widely-used code editor developed by Microsoft. It’s known for being cross-platform and extensible, making it a popular choice among developers working on different operating systems and looking for add-ons to enhance their workflow. Below, we explore various use cases of the ‘code’ command, allowing you to leverage the full potential of Visual Studio Code right from your terminal.
Use Case 1: Start Visual Studio Code
Code:
code
Motivation:
Starting Visual Studio Code from the command line is a quick and efficient way to launch the editor without searching through your applications or start menu. This is particularly useful for developers who spend a lot of time in the terminal and prefer command-line interfaces for their quickness and ease of use.
Explanation:
In this simplest form, the code
command starts Visual Studio Code using the current directory as the workspace. This is functionally similar to double-clicking the Visual Studio Code application icon but offers more flexibility, especially when contextualized with other terminal operations.
Example Output:
Upon executing this command, Visual Studio Code opens the current working directory as your workspace. The terminal will not display any additional output unless there is an error launching the editor.
Use Case 2: Open Specific Files/Directories
Code:
code path/to/file_or_directory1 path/to/file_or_directory2 ...
Motivation:
When you’re working on multiple files across various directories, opening them manually in a code editor can be tedious. By specifying paths directly with the code
command, you can seamlessly open multiple files or directories in Visual Studio Code, thereby streamlining your workflow and saving time.
Explanation:
path/to/file_or_directory1
: Replace with the actual path to the file or directory you wish to open. This specifies what should be immediately accessible in the editor.path/to/file_or_directory2 ...
: Additional files or directories can be specified, separated by spaces, allowing multiple resources to be opened in one command.
Example Output:
Executing this command will open the specified files and directories in Visual Studio Code. Tabs will be created for each file, and directories will be added to the workspace, all within the editor’s window.
Use Case 3: Compare Two Specific Files
Code:
code --diff path/to/file1 path/to/file2
Motivation:
Comparing files is crucial for spotting changes or discrepancies, particularly in a development or code-review context. Having the ability to visually compare two files directly in your editor simplifies this process and aids in clear, direct assessments of file differences.
Explanation:
--diff
: This flag tells Visual Studio Code to compare the specified files side by side.path/to/file1
: The first file involved in the comparison.path/to/file2
: The second file involved in the comparison.
Example Output:
Opening Visual Studio Code with this command will display both files in split view, highlighting any differences between them. This specialized view assists in thorough and efficient file comparison.
Use Case 4: Open Specific Files/Directories in a New Window
Code:
code --new-window path/to/file_or_directory1 path/to/file_or_directory2 ...
Motivation:
When working on distinct projects or tasks, managing them in separate editor windows can enhance focus and organization. This command opens the specified files or directories in a new Visual Studio Code window, preventing cluttered workspaces.
Explanation:
--new-window
: Initiates a new instance of Visual Studio Code while retaining an existing one. This is crucial for maintaining separation between different work contexts.path/to/file_or_directory1
,path/to/file_or_directory2
: Paths to each file or directory you want to send to this new window for editing or examination.
Example Output:
Executing this command will launch a new window of Visual Studio Code with the specified files and directories open, while any previously-open instances of the editor remain unaffected.
Use Case 5: Install/Uninstall a Specific Extension
Code:
To install an extension:
code --install-extension publisher.extension
To uninstall an extension:
code --uninstall-extension publisher.extension
Motivation:
Extensions significantly augment the functionality of Visual Studio Code, offering features that range from language support to tooling enhancements. Being able to manage these extensions directly from the command line allows developers to quickly set up their environment without navigating through the graphical interface.
Explanation:
--install-extension
: Instructs Visual Studio Code to add the specified extension.--uninstall-extension
: Directs Visual Studio Code to remove the specified extension.publisher.extension
: The unique identifier for the target extension, usually composed of a publisher name and an extension name, separated by a dot.
Example Output:
Installing an extension provides a confirmation message in the terminal or output panel, confirming successful installation. Uninstalling similarly notifies of its removal.
Use Case 6: Print Installed Extensions
Code:
code --list-extensions
Motivation:
When reinstalling or setting up Visual Studio Code on a new machine, knowing what extensions were previously used can be invaluable. Listing installed extensions aids in replication of past configurations, supporting consistency across work environments.
Explanation:
--list-extensions
: Command to list all extensions currently installed on your Visual Studio Code setup, making it easy to keep track of your customization.
Example Output:
The terminal will display a simple list of all installed extensions by their publisher and name, one per line, offering a clear snapshot of your current extension setup.
Use Case 7: Print Installed Extensions with Their Versions
Code:
code --list-extensions --show-versions
Motivation:
Understanding not only which extensions are installed, but also their current versions, is essential for troubleshooting issues, ensuring compatibility, and managing updates. This capability aids developers in maintaining optimal toolsets aligned with project requirements.
Explanation:
--list-extensions
: Lists all installed extensions.--show-versions
: Additionally appends the version number of each extension to the output, providing richer detail about the installation state.
Example Output:
A list similar to that of the --list-extensions
command, but with versions attached to each listed extension, showing insights like “author.extension@1.2.3
”.
Use Case 8: Start the Editor as a Superuser (root) While Storing User Data in a Specific Directory
Code:
sudo code --user-data-dir path/to/directory
Motivation:
Running Visual Studio Code as a superuser is sometimes necessary to edit system files. Distinct user data directories allow these privileged sessions to remain independent of your normal working configurations, safeguarding user preferences and settings.
Explanation:
sudo
: Executes the command as a superuser, granting elevated permissions necessary for editing protected files.--user-data-dir path/to/directory
: Directs Visual Studio Code to use a specific directory for storing user configurations and data during this session, preventing cross-contamination with standard user settings.
Example Output:
On executing this command, you will enter a superuser session of Visual Studio Code that operates independently in terms of configuration, allowing you to safely edit files requiring administrative rights.
Conclusion:
The ‘code’ command is a powerful tool for managing and interacting with Visual Studio Code directly from the terminal. Each use case, from launching the editor to managing extensions, contributes to a streamlined workflow that enhances productivity. Understanding and utilizing these commands effectively can significantly improve your development experience in Visual Studio Code.