VS Code Integrated Terminal Setup - Complete Guide
Published: September 25, 2024 | Reading time: 12 minutes
Essential Terminal Shortcuts
Master these shortcuts to work efficiently with the integrated terminal:
Terminal Shortcuts
Ctrl+` - Toggle Terminal
Ctrl+Shift+` - New Terminal
Ctrl+Shift+C - Copy Selection
Ctrl+Shift+V - Paste
Ctrl+C - Interrupt Process
Ctrl+Shift+5 - Split Terminal
Why Use VS Code's Integrated Terminal?
The integrated terminal offers several advantages:
- Seamless workflow - No need to switch between applications
- Context awareness - Terminal opens in your workspace directory
- Multiple terminals - Run different commands simultaneously
- Integrated debugging - Terminal output appears in debug console
- Task automation - Run tasks directly from VS Code
Basic Terminal Configuration
Terminal Settings
settings.json - Terminal Config
{
// Terminal appearance
"terminal.integrated.fontSize": 14,
"terminal.integrated.fontFamily": "'Fira Code', 'Consolas', monospace",
"terminal.integrated.fontWeight": "normal",
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.cursorStyle": "line",
// Terminal behavior
"terminal.integrated.scrollback": 10000,
"terminal.integrated.copyOnSelection": true,
"terminal.integrated.rightClickBehavior": "copyPaste",
"terminal.integrated.confirmOnExit": "hasChildProcesses",
// Shell configuration
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe",
"terminal.integrated.shellArgs.windows": [],
"terminal.integrated.defaultProfile.windows": "Command Prompt"
}
Shell Configuration
Windows Shell Setup
Windows Shell Profiles
{
"terminal.integrated.profiles.windows": {
"Command Prompt": {
"path": "C:\\Windows\\System32\\cmd.exe",
"args": [],
"icon": "terminal-cmd"
},
"PowerShell": {
"path": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"args": [],
"icon": "terminal-powershell"
},
"Git Bash": {
"path": "C:\\Program Files\\Git\\bin\\bash.exe",
"args": [],
"icon": "terminal-bash"
},
"WSL": {
"path": "C:\\Windows\\System32\\wsl.exe",
"args": [],
"icon": "terminal-linux"
}
}
}
macOS/Linux Shell Setup
Unix Shell Profiles
{
"terminal.integrated.profiles.osx": {
"zsh": {
"path": "/bin/zsh",
"args": ["-l"],
"icon": "terminal"
},
"bash": {
"path": "/bin/bash",
"args": ["-l"],
"icon": "terminal"
}
},
"terminal.integrated.profiles.linux": {
"bash": {
"path": "/bin/bash",
"args": ["-l"],
"icon": "terminal-bash"
},
"zsh": {
"path": "/bin/zsh",
"args": ["-l"],
"icon": "terminal"
}
}
}
Advanced Terminal Features
Multiple Terminals
Work with multiple terminal instances:
Terminal Management
// Terminal shortcuts
Ctrl+Shift+` - New Terminal
Ctrl+Shift+5 - Split Terminal
Ctrl+PageUp/PageDown - Switch between terminals
Ctrl+Shift+W - Close Terminal
Ctrl+Shift+R - Rename Terminal
// Terminal tabs
Ctrl+Shift+[ - Previous Terminal Tab
Ctrl+Shift+] - Next Terminal Tab
Terminal Tasks Integration
tasks.json - Terminal Tasks
{
"version": "2.0.0",
"tasks": [
{
"label": "npm start",
"type": "shell",
"command": "npm start",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "new"
},
"problemMatcher": []
},
{
"label": "npm test",
"type": "shell",
"command": "npm test",
"group": "test",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
}
}
]
}
Terminal Customization
Custom Themes and Colors
Terminal Color Scheme
{
"terminal.integrated.colors": {
"terminal.background": "#1e1e1e",
"terminal.foreground": "#d4d4d4",
"terminalCursor.background": "#d4d4d4",
"terminalCursor.foreground": "#1e1e1e",
"terminal.ansiBlack": "#000000",
"terminal.ansiRed": "#cd3131",
"terminal.ansiGreen": "#0dbc79",
"terminal.ansiYellow": "#e5e510",
"terminal.ansiBlue": "#2472c8",
"terminal.ansiMagenta": "#bc3fbc",
"terminal.ansiCyan": "#11a8cd",
"terminal.ansiWhite": "#e5e5e5"
}
}
PowerShell Profile Setup
PowerShell Profile
# PowerShell profile (Microsoft.PowerShell_profile.ps1)
# Add to: $PROFILE
# Custom aliases
Set-Alias -Name ll -Value Get-ChildItem
Set-Alias -Name la -Value Get-ChildItem
Set-Alias -Name grep -Value Select-String
# Custom functions
function Get-ChildItemWithSize {
Get-ChildItem | Select-Object Name, Length, LastWriteTime
}
# Git shortcuts
function gs { git status }
function ga { git add . }
function gc { git commit -m $args }
function gp { git push }
# Node.js shortcuts
function ni { npm install }
function ns { npm start }
function nt { npm test }
Terminal Extensions
Essential Terminal Extensions
Productivity Extensions
- Terminal Here
- Terminal Tabs
- Terminal Commands
- PowerShell
- Bash IDE
Integration Extensions
- Docker
- Remote - SSH
- Remote - Containers
- Remote - WSL
- GitLens
Terminal Automation
Automated Scripts
Automation Scripts
# Windows batch script (setup.bat)
@echo off
echo Setting up development environment...
npm install
npm run build
echo Setup complete!
# PowerShell script (deploy.ps1)
Write-Host "Deploying application..." -ForegroundColor Green
npm run build
npm run test
if ($LASTEXITCODE -eq 0) {
Write-Host "Deployment successful!" -ForegroundColor Green
} else {
Write-Host "Deployment failed!" -ForegroundColor Red
}
# Bash script (deploy.sh)
#!/bin/bash
echo "Deploying application..."
npm run build
npm run test
if [ $? -eq 0 ]; then
echo "Deployment successful!"
else
echo "Deployment failed!"
exit 1
fi
Terminal Productivity Tips
Keyboard Shortcuts
Essential Shortcuts
// Terminal navigation
Ctrl+C - Interrupt current process
Ctrl+D - Exit terminal
Ctrl+L - Clear terminal
Ctrl+U - Clear line before cursor
Ctrl+K - Clear line after cursor
Ctrl+A - Move to beginning of line
Ctrl+E - Move to end of line
// VS Code terminal shortcuts
Ctrl+` - Toggle terminal
Ctrl+Shift+` - New terminal
Ctrl+Shift+C - Copy selection
Ctrl+Shift+V - Paste
Ctrl+Shift+5 - Split terminal
Command History and Completion
History Commands
# Command history
history - Show command history
!! - Repeat last command
!n - Repeat command number n
!string - Repeat last command starting with string
# Tab completion
Tab - Complete command/file names
Ctrl+R - Search command history
Ctrl+S - Search forward in history
Ctrl+G - Cancel search
Terminal Integration with Tasks
Build and Test Tasks
Advanced tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Build and Watch",
"type": "shell",
"command": "npm run build:watch",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "new",
"showReuseMessage": false
},
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"source": "ts",
"applyTo": "closedDocuments",
"fileLocation": "relative",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": ".*",
"endsPattern": ".*Finished compilation.*"
}
}
}
]
}
Terminal Troubleshooting
Common Issues and Solutions
Troubleshooting Guide
// Issue: Terminal not opening
// Solution: Check shell path in settings
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\cmd.exe"
// Issue: Terminal font too small
// Solution: Increase font size
"terminal.integrated.fontSize": 16
// Issue: Terminal not inheriting environment
// Solution: Set environment variables
"terminal.integrated.env.windows": {
"NODE_ENV": "development"
}
// Issue: Terminal performance issues
// Solution: Reduce scrollback buffer
"terminal.integrated.scrollback": 5000
Summary
Mastering VS Code's integrated terminal will streamline your development workflow:
- Configuration: Customize appearance, behavior, and shell profiles
- Multiple terminals: Work with several terminal instances
- Task integration: Run automated tasks and builds
- Productivity: Use shortcuts and automation scripts
- Troubleshooting: Resolve common terminal issues
Need More Help?
Struggling with terminal setup or need help with specific terminal configurations? Our terminal experts can help you optimize your development environment.
Get Terminal Help