(Editor: VSCode / VSCodium)
Ich habe mir einige wiederkehrende Befehle mal auf Hotkeys gelegt.
Die keybindings.json öffnen ("CTRL+SHIFT+P" und als Text "Tastenkombinationen" in die Suchmaske eingeben) und dort entsprechend ergänzen.
// Terminal auf das Verzeichnis der geöffneten Datei setzen
{
"key": "alt+t",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd /d \"${fileDirname}\"\u000D"},
"when": "editorTextFocus"
},
// Kompilieren geöffnete Datei: 64bit, DLL
{
"key": "ctrl+numpad5",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c -d:release --app:lib \"${file}\"\u000D"},
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 64bit, CUI
{
"key": "ctrl+numpad6",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c \"${file}\"\u000D"},
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 64bit, GUI
{
"key": "ctrl+numpad7",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c --app:gui \"${file}\"\u000D"},
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 32bit, CUI
{
"key": "ctrl+numpad8",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c --cpu:i386 \"${file}\"\u000D"},
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 32bit, GUI
{
"key": "ctrl+numpad9",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c --cpu:i386 --app:gui \"${file}\"\u000D"},
"when": "resourceExtname == .nim"
}
Alles anzeigen
Im Argumentebereich "text" können auch andere/weitere Parameter hinterlegt werden.
Natürlich können auch andere Hotkeys verwendet werden. Eine Übersicht findet man mit "CTRL+K CTRL+S".
EDIT:
Etwas eleganter kann man das mit Macros lösen, um gleich mehrere Aktionen auf einmal auszuführen.
Ich verwende macro-commander (Command Runner).
EDIT 2:
Da die Keybindings und Settings (Dateien) nicht direkt geöffnet werden über das Menü (nur eine Bedienoberfläche dafür), habe ich noch ergänzt um diese Dateien direkt öffnen zu können.
In der settings.json habe ich entsprechend ergänzt:
// macro-commander:
"macros": {
"clearAll":[
"workbench.output.action.clearOutput", // Ausgabe löschen
"workbench.action.terminal.clear" // Terminal löschen
],
"setTerminalCurrentDir":[
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd /d \"${fileDirname}\"\u000D"}
}
],
"prepareTerminalToBuild":[
"macros.clearAll",
"macros.setTerminalCurrentDir",
"workbench.action.terminal.focus"
],
"createDLL64bit":[
"macros.prepareTerminalToBuild",
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c -d:release --app:lib \"${file}\"\u000D"}
}
],
"compileCUI64bit":[
"macros.prepareTerminalToBuild",
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c \"${file}\"\u000D"}
}
],
"compileCUI32bit":[
"macros.prepareTerminalToBuild",
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c --cpu:i386 \"${file}\"\u000D"}
}
],
"compileGUI64bit":[
"macros.prepareTerminalToBuild",
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c --app:gui \"${file}\"\u000D"}
}
],
"compileGUI32bit":[
"macros.prepareTerminalToBuild",
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "nim c --cpu:i386 --app:gui \"${file}\"\u000D"}
}
],
"openKeybindings":[
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "codium -g \"C:\\Users\\BugFix\\scoop\\apps\\vscodium\\current\\data\\user-data\\User\\keybindings.json\":1\u000D"}
}
],
"openSettings":[
{
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "codium -g \"C:\\Users\\BugFix\\scoop\\apps\\vscodium\\current\\data\\user-data\\User\\settings.json\":1\u000D"}
}
]
}
Alles anzeigen
Die Pfade bei "openKeybindings" und "openSettings" müsst ihr an eure Installation anpassen! ACHTUNG, unterschiedliche Befehle: VSCodium = codium / VSCode = code
Und die keybindings.json sieht jetzt so aus:
// Terminal auf das Verzeichnis der geöffneten Datei setzen
{
"key": "alt+t",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd /d \"${fileDirname}\"\u000D"},
"when": "editorTextFocus"
},
// Kompilieren geöffnete Datei: 64bit, DLL
{
"key": "ctrl+numpad5",
"command": "macros.createDLL64bit",
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 64bit, CUI
{
"key": "ctrl+numpad6",
"command": "macros.compileCUI64bit",
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 64bit, GUI
{
"key": "ctrl+numpad7",
"command": "macros.compileGUI64bit",
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 32bit, CUI
{
"key": "ctrl+numpad8",
"command": "macros.compileCUI32bit",
"when": "resourceExtname == .nim"
},
// Kompilieren geöffnete Datei: 32bit, GUI
{
"key": "ctrl+numpad9",
"command": "macros.compileGUI32bit",
"when": "resourceExtname == .nim"
},
// Öffnen keybindings.json
{
"key": "ctrl+f11",
"command": "macros.openKeybindings",
"when": "editorTextFocus"
},
// Öffnen settings.json
{
"key": "ctrl+f12",
"command": "macros.openSettings",
"when": "editorTextFocus"
}
Alles anzeigen