https://github.com/jawehrung/documentation_terminal_snippets
Documentation Terminal Snippets
https://github.com/jawehrung/documentation_terminal_snippets
android-studio clion cmd datagrip gogland ide intellij jetbrains phpstorm pycharm rubymine shell snippets snippets-plugin terminal webstorm
Last synced: about 10 hours ago
JSON representation
Documentation Terminal Snippets
- Host: GitHub
- URL: https://github.com/jawehrung/documentation_terminal_snippets
- Owner: jawehrung
- License: other
- Created: 2025-10-21T09:49:39.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-11-08T17:14:11.000Z (8 months ago)
- Last Synced: 2025-11-08T19:10:11.745Z (8 months ago)
- Topics: android-studio, clion, cmd, datagrip, gogland, ide, intellij, jetbrains, phpstorm, pycharm, rubymine, shell, snippets, snippets-plugin, terminal, webstorm
- Homepage: https://plugins.jetbrains.com/vendor/jawehrung
- Size: 271 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Terminal Snippets
Terminal Snippets is an plugin that allows you to quickly inject predefined command snippets into the terminal.
## Features
- đ Quick access to frequently used terminal commands
- đ Organize snippets by categories with automatic submenus
- đ¤ Dynamic variables (project info, date/time, clipboard, etc.)
- đŦ Interactive variables (prompts, choices, confirmations)
- âī¸ Easy configuration through Settings > Tools > Terminal Snippets
- đ¯ One-click command injection via terminal toolbar icon
- đž Persistent storage of your custom snippets
- đ¤ Import/Export snippets as JSON
- đ Compatible with both Classic Terminal and Reworked Terminal 2025
## Usage
1. Configure your snippets in **Settings > Tools > Terminal Snippets**
2. Open a terminal window (**View > Tool Windows > Terminal**)
3. Click the **Terminal Snippets** icon in the terminal toolbar
4. Select a snippet to inject it into the terminal
## Thematic commands packages ready to install
- 20 Predefined packages for popular developer tasks and tools : ([Github](https://github.com/jawehrung/Documentation_Terminal_Snippets/tree/master/snippets-templates))
- AWS CLI Commands
- Azure CLI Commands
- Compression Commands
- Docker Commands
- Dotnet Commands
- GCP CLI Commands
- Git Commands
- Go Commands
- Gradle Commands
- Kubernetes Commands
- Maven Commands
- Mongodb Commands
- MySQL Commands
- Npm Commands
- PostgreSQL Commands
- Python Commands
- Rust Commands
- Ssh Commands
- System Monitoring Commands
- Terraform Commands
- One-click installation of multiple commands snippets
- Save time configuring your favorite terminal commands
## Installation
### Manual Installation
1. Download the latest `Terminal-Snippets-X.X.X.zip` from [my Jetbrains MarketPlace Page](https://plugins.jetbrains.com/vendor/jawehrung)
2. Open your Jetbrains IDE
3. Go to Settings/Preferences > Plugins
4. Click the âī¸ icon > Install Plugin from Disk...
5. Select the downloaded ZIP file
6. Restart IntelliJ IDEA
## Configuration
1. Go to Settings/Preferences > Tools > Terminal Snippets
2. Add your custom snippets with:
- **Name**: Display name of the snippet
- **Category**: Group snippets together (e.g., "Build", "Git", "Docker")
- **Command**: The command to inject (supports multi-line)
3. Click OK to save
### Categories
- Snippets are automatically organized by category in the dropdown menu
- If you have multiple categories, they appear as submenus
- If you have only one category, snippets are displayed in a flat list
- Leave category blank to use the default "General" category
### Import/Export
- **Export**: Click the Export button to save your snippets as JSON with timestamp
- **Import**: Click the Import button to load snippets from a JSON file
- Duplicate snippets (same name + category) are automatically skipped during import
## Variables
Terminal Snippets supports both static and interactive variables in your commands.
### Static Variables
These variables are automatically resolved when the snippet is executed:
| Variable | Description | Example |
|----------|-------------|----------|
| `${PROJECT_NAME}` | Current project name | `echo "Building ${PROJECT_NAME}"` |
| `${PROJECT_PATH}` | Current project path | `cd ${PROJECT_PATH}` |
| `${MODULE_NAME}` | Current module name | `./gradlew :${MODULE_NAME}:test` |
| `${FILE_PATH}` | Currently open file path | `cat ${FILE_PATH}` |
| `${FILE_NAME}` | Current file name | `javac ${FILE_NAME}` |
| `${FILE_DIR}` | Current file directory | `cd ${FILE_DIR}` |
| `${PACKAGE_NAME}` | Package name (Java/Kotlin) | `echo "Package: ${PACKAGE_NAME}"` |
| `${SELECTION}` | Selected text in editor | `echo "${SELECTION}"` |
| `${CLIPBOARD}` | Clipboard content | `echo ${CLIPBOARD}` |
| `${DATE}` | Current date (dd/MM/yyyy) | `echo "Build date: ${DATE}"` |
| `${TIME}` | Current time (HH:mm:ss) | `echo "Build time: ${TIME}"` |
| `${YEAR}` | Current year | `mkdir backup-${YEAR}` |
| `${MONTH}` | Current month (01-12) | `echo "Month: ${MONTH}"` |
| `${MONTH_NAME_SHORT}` | Short month name (Jan, Feb...) | `echo "${MONTH_NAME_SHORT}"` |
| `${MONTH_NAME_FULL}` | Full month name (January...) | `echo "${MONTH_NAME_FULL}"` |
| `${DAY}` | Current day (01-31) | `echo "Day: ${DAY}"` |
| `${HOUR}` | Current hour (00-23) | `echo "Hour: ${HOUR}"` |
| `${MINUTE}` | Current minute (00-59) | `echo "Minute: ${MINUTE}"` |
| `${USERLOGIN}` | System username | `echo "User: ${USERLOGIN}"` |
| `${USER_HOME}` | User home directory | `cp config ${USER_HOME}/.ssh/` |
| `${OS_NAME}` | Operating system name | `echo "OS: ${OS_NAME}"` |
| `${ENVVAR:VAR_NAME}` | Environment variable value | `echo "Path: ${ENVVAR:PATH}"` |
| `${GIT_ROOT}` | Git repository root | `cd ${GIT_ROOT}` |
| `${GIT_BRANCH}` | Current Git branch | `echo "Branch: ${GIT_BRANCH}"` |
| `${GIT_COMMIT}` | Current commit hash (full) | `echo "Commit: ${GIT_COMMIT}"` |
| `${GIT_COMMIT_SHORT}` | Current commit hash (short) | `git tag v1.0-${GIT_COMMIT_SHORT}` |
| `${GIT_REMOTE}` | Git remote URL | `echo "Remote: ${GIT_REMOTE}"` |
| `${GIT_USER_NAME}` | Git user name | `echo "Author: ${GIT_USER_NAME}"` |
| `${GIT_USER_EMAIL}` | Git user email | `echo "Email: ${GIT_USER_EMAIL}"` |
| `${GIT_TAG_LATEST}` | Latest Git tag | `echo "Version: ${GIT_TAG_LATEST}"` |
| `${GRADLE_VERSION}` | Gradle version | `echo "Gradle ${GRADLE_VERSION}"` |
| `${MAVEN_VERSION}` | Maven project version | `echo "Maven ${MAVEN_VERSION}"` |
### Interactive Variables
These variables prompt the user for input when the snippet is executed:
| Variable | Description | Example |
|----------|-------------|----------|
| `${VAR:Description}` | Simple text input | `git commit -m "${VAR:Commit message}"` |
| `${VAR:Description:Default}` | Text input with default value | `docker run -p ${VAR:Port:8080}:8080 app` |
| `${CHOICE:Description:opt1\|opt2}` | Dropdown selection | `mvn clean ${CHOICE:Phase:install\|package\|deploy}` |
| `${CONFIRM:Description}` | Yes/No confirmation | `echo "Confirmed: ${CONFIRM:Delete files?}"` |
| `${PASSWORD:Description}` | Masked password input | `docker login -p ${PASSWORD:Docker password}` |
| `${PATH:Description}` | File/folder picker | `cd ${PATH:Select directory}` |
### Variable Examples
**Build with timestamp:**
```bash
echo "Building ${PROJECT_NAME} on ${DATE} at ${TIME}"
gradlew clean build
```
**Interactive deployment:**
```bash
cd ${PROJECT_PATH}
mvn clean ${CHOICE:Select phase:package|install|deploy}
echo "Deployed by ${USERLOGIN} at ${TIME}"
```
**Git-aware build:**
```bash
echo "Building ${PROJECT_NAME} from branch ${GIT_BRANCH}"
echo "Commit: ${GIT_COMMIT_SHORT}"
gradlew build -Pversion=${GIT_BRANCH}-${GIT_COMMIT_SHORT}
```
**Conditional execution:**
```bash
echo "Delete all logs?"
if [ "${CONFIRM:Are you sure?}" = "yes" ]; then
rm -rf logs/*
fi
```
**Using environment variables:**
```bash
echo "Java Home: ${ENVVAR:JAVA_HOME}"
echo "Path: ${ENVVAR:PATH}"
docker run -e API_KEY=${ENVVAR:API_KEY} myapp
```
**File operations:**
```bash
# Compile current file
javac ${FILE_DIR}/${FILE_NAME}
java ${PACKAGE_NAME}.${FILE_NAME%.java}
# Backup to home
cp ${FILE_PATH} ${USER_HOME}/backup/${FILE_NAME}
```
**Multi-module project:**
```bash
# Test specific module
./gradlew :${MODULE_NAME}:test
# Build with version from Git
cd ${GIT_ROOT}
./gradlew :${MODULE_NAME}:build -Pversion=${GIT_TAG_LATEST}
```
**Cross-platform script:**
```bash
echo "Running on ${OS_NAME}"
echo "Gradle version: ${GRADLE_VERSION}"
echo "Built by ${GIT_USER_NAME} <${GIT_USER_EMAIL}>"
```
## Default Snippets
The plugin comes with two example snippets:
- **Pip Upgrade** (Category: Python)
- **Git Status** (Category: Git)
## Terminal Compatibility
### Classic Terminal
- â
Commands are injected into the prompt
- â
Multi-line commands are supported
- â
Press Enter to execute
- â
You can modify the command before execution
### Reworked Terminal 2025
- â
Commands are executed automatically
- â
Multi-line commands execute line by line
- âšī¸ No modification possible before execution (API limitation)
---
Plugin based on the [IntelliJ Platform Plugin Template][template].
[template]: https://github.com/JetBrains/intellij-platform-plugin-template
[docs:plugin-description]: https://plugins.jetbrains.com/docs/intellij/plugin-user-experience.html#plugin-description-and-presentation