Tastenkürzel
Passen Sie Ihre Tastaturkürzel an.
Passen Sie die Tastaturkürzel von Dropstone mit keymap in tui.json an.
keymap wird mit den integrierten Standardeinstellungen zusammengeführt, sodass Sie nur die Kürzel konfigurieren müssen, die Sie ändern möchten.
Das ältere Feld keybinds wird weiterhin als Migrations-Fallback akzeptiert, ist aber veraltet. Wenn keymap vorhanden ist, ignoriert Dropstone keybinds.
Leader-Taste
Dropstone verwendet für viele Kürzel eine leader-Taste. Dadurch werden Konflikte in Ihrem Terminal vermieden.
Standardmäßig ist ctrl+x die Leader-Taste, und Leader-Kürzel erfordern, dass Sie zuerst die Leader-Taste und dann das Kürzel drücken. Um beispielsweise eine neue Sitzung zu starten, drücken Sie zuerst ctrl+x und dann n.
Sie müssen keine Leader-Taste verwenden, aber wir empfehlen es.
Minimalbeispiel
{
"$schema": "https://dropstone.io/schema/tui.json",
"keymap": {
"leader": "ctrl+x",
"leader_timeout": 2000,
"sections": {
"global": {
"command.palette.show": "ctrl+p",
"session.new": "<leader>n",
"session.list": "<leader>l"
},
"session": {
"session.compact": "<leader>c",
"session.undo": "<leader>u",
"session.redo": "<leader>r"
},
"input": {
"input.submit": "return",
"input.newline": ["shift+return", "ctrl+return", "alt+return", "ctrl+j"]
}
}
}
}
Struktur der Keymap
keymap.sections ist nach semantischen Bereichen gruppiert. Jeder Abschnitt enthält Befehlsnamen und die Tastensequenz, die sie auslöst.
| Feld | Beschreibung |
|---|---|
leader | Die Taste, die für <leader>-Sequenzen verwendet wird. Standard ist ctrl+x. |
leader_timeout | Wie lange Dropstone nach der Leader-Taste auf die nächste Taste wartet, in Millisekunden. Standard ist 2000. |
sections | Eine Zuordnung von UI-Bereichen zu Befehlsbindungen. |
Bindungswerte
Ein String kann ein Kürzel oder mehrere durch Kommas getrennte Kürzel enthalten. Sie können auch ein Array für mehrere Kürzel verwenden oder "none"/false, um einen Befehl zu deaktivieren.
{
"$schema": "https://dropstone.io/schema/tui.json",
"keymap": {
"sections": {
"session": {
"session.compact": "none",
"session.export": "<leader>x,ctrl+shift+x",
"session.copy": ["<leader>y", "ctrl+shift+c"]
}
}
}
}
Für fortgeschrittene Fälle verwenden Sie ein Objekt mit key, event, preventDefault oder fallthrough.
{
"$schema": "https://dropstone.io/schema/tui.json",
"keymap": {
"sections": {
"prompt": {
"prompt.paste": {
"key": "ctrl+v",
"preventDefault": false
}
}
}
}
}
Keymap-Referenz
Dies sind die benutzerorientierten Befehle, die Sie binden können. Befehle, die auf "none" gesetzt sind, können gebunden werden, sind aber standardmäßig deaktiviert.
{
"$schema": "https://dropstone.io/schema/tui.json",
"keymap": {
"leader": "ctrl+x",
"leader_timeout": 2000,
"sections": {
"global": {
"command.palette.show": "ctrl+p",
"session.list": "<leader>l",
"session.new": "<leader>n",
"model.list": "<leader>m",
"model.cycle_recent": "f2",
"model.cycle_recent_reverse": "shift+f2",
"agent.list": "<leader>a",
"agent.cycle": "tab",
"agent.cycle.reverse": "shift+tab",
"variant.cycle": "ctrl+t",
"variant.list": "none",
"help.show": "none",
"workspace.open": "ctrl+o,<leader>o",
"app.exit": "ctrl+c,ctrl+d,<leader>q",
"terminal.suspend": "ctrl+z"
},
"session": {
"session.rename": "ctrl+r",
"session.timeline": "<leader>g",
"session.fork": "none",
"session.compact": "<leader>c",
"session.undo": "<leader>u",
"session.redo": "<leader>r",
"session.sidebar.toggle": "<leader>b",
"session.toggle.conceal": "<leader>h",
"session.page.up": "pageup,ctrl+alt+b",
"session.page.down": "pagedown,ctrl+alt+f",
"session.line.up": "ctrl+alt+y",
"session.line.down": "ctrl+alt+e",
"session.half.page.up": "ctrl+alt+u",
"session.half.page.down": "ctrl+alt+d",
"session.first": "ctrl+g,home",
"session.last": "ctrl+alt+g,end",
"messages.copy": "<leader>y",
"session.copy": "none",
"session.export": "<leader>x",
"session.child.first": "<leader>down",
"session.parent": "up",
"session.child.next": "right",
"session.child.previous": "left"
},
"prompt": {
"prompt.submit": "none",
"prompt.editor": "<leader>e",
"session.interrupt": "escape",
"prompt.clear": "ctrl+c",
"prompt.paste": {
"key": "ctrl+v",
"preventDefault": false
},
"prompt.history.previous": "up",
"prompt.history.next": "down"
},
"autocomplete": {
"prompt.autocomplete.prev": "up,ctrl+p",
"prompt.autocomplete.next": "down,ctrl+n",
"prompt.autocomplete.hide": "escape",
"prompt.autocomplete.select": "return",
"prompt.autocomplete.complete": "tab"
},
"input": {
"input.submit": "return",
"input.newline": "shift+return,ctrl+return,alt+return,ctrl+j",
"input.move.left": "left,ctrl+b",
"input.move.right": "right,ctrl+f",
"input.move.up": "up",
"input.move.down": "down",
"input.select.left": "shift+left",
"input.select.right": "shift+right",
"input.select.up": "shift+up",
"input.select.down": "shift+down",
"input.line.home": "ctrl+a",
"input.line.end": "ctrl+e",
"input.select.line.home": "ctrl+shift+a",
"input.select.line.end": "ctrl+shift+e",
"input.visual.line.home": "alt+a",
"input.visual.line.end": "alt+e",
"input.select.visual.line.home": "alt+shift+a",
"input.select.visual.line.end": "alt+shift+e",
"input.buffer.home": "home",
"input.buffer.end": "end",
"input.select.buffer.home": "shift+home",
"input.select.buffer.end": "shift+end",
"input.delete.line": "ctrl+shift+d",
"input.delete.to.line.end": "ctrl+k",
"input.delete.to.line.start": "ctrl+u",
"input.backspace": "backspace,shift+backspace",
"input.delete": "ctrl+d,delete,shift+delete",
"input.undo": "ctrl+-,super+z",
"input.redo": "ctrl+.,super+shift+z",
"input.word.forward": "alt+f,alt+right,ctrl+right",
"input.word.backward": "alt+b,alt+left,ctrl+left",
"input.select.word.forward": "alt+shift+f,alt+shift+right",
"input.select.word.backward": "alt+shift+b,alt+shift+left",
"input.delete.word.forward": "alt+d,alt+delete,ctrl+delete",
"input.delete.word.backward": "ctrl+w,ctrl+backspace,alt+backspace",
"input.select.all": "super+a"
},
"dialog_select": {
"dialog.select.prev": "up,ctrl+p",
"dialog.select.next": "down,ctrl+n",
"dialog.select.page_up": "pageup",
"dialog.select.page_down": "pagedown",
"dialog.select.home": "home",
"dialog.select.end": "end",
"dialog.select.submit": "return"
},
"dialog_actions": {
"dialog.action.toggle": "space",
"dialog.action.delete": "ctrl+d",
"dialog.action.rename": "ctrl+r"
},
"permission": {
"permission.reject.cancel": "ctrl+c,ctrl+d,<leader>q",
"permission.prompt.escape": "ctrl+c,ctrl+d,<leader>q",
"permission.prompt.fullscreen": "ctrl+f"
},
"question": {
"question.reject": "ctrl+c,ctrl+d,<leader>q",
"question.edit.clear": "ctrl+c"
},
"home_tips": {
"tips.toggle": "<leader>h"
}
}
}
}
Legacy-Keybinds
keybinds ist veraltet. Es wird beibehalten, damit bestehende Konfigurationen weiterhin funktionieren, während Benutzer auf keymap migrieren.
Verwenden Sie keybinds nur, wenn keymap nicht vorhanden ist. Wenn beide Felder gesetzt sind, gewinnt keymap und keybinds werden für die Kürzelauflösung ignoriert.
{
"$schema": "https://dropstone.io/schema/tui.json",
"keybinds": {
"command_list": "ctrl+p",
"session_new": "<leader>n",
"session_compact": "<leader>c"
}
}
Windows-Standardwerte:
Auf nativem Windows sind die Standardwerte für Rückgängig und Terminal-Anhalten sowohl für keymap als auch für Legacy-keybinds unterschiedlich:
input.undostandardmäßig aufctrl+z,ctrl+-,super+z, wenn nicht explizit konfiguriert (diectrl+z-Bindung wird hinzugefügt, weil Windows-Terminals kein POSIX-Suspend unterstützen).terminal.suspendist deaktiviert, weil native Windows-Terminals kein POSIX-Suspend unterstützen.
Integrierte Eingabe-Kürzel
Die Prompt-Eingabe unterstützt gängige Readline/Emacs-artige Kürzel zum Bearbeiten von Text. Dies sind integrierte Standardwerte: Sie können sie im Abschnitt input der tui.json oben überschreiben.
| Kürzel | Aktion |
|---|---|
ctrl+a | Zum Anfang der aktuellen Zeile wechseln |
ctrl+e | Zum Ende der aktuellen Zeile wechseln |
ctrl+b | Cursor ein Zeichen zurückbewegen |
ctrl+f | Cursor ein Zeichen vorwärtsbewegen |
alt+b | Cursor ein Wort zurückbewegen |
alt+f | Cursor ein Wort vorwärtsbewegen |
ctrl+d | Zeichen unter dem Cursor löschen |
ctrl+k | Bis zum Zeilenende löschen |
ctrl+u | Bis zum Zeilenanfang löschen |
ctrl+w | Vorheriges Wort löschen |
alt+d | Nächstes Wort löschen |
ctrl+t | Zeichen vertauschen |
ctrl+g | Popovers abbrechen / laufende Antwort abbrechen |
Umschalt+Eingabetaste
Einige Terminals senden Modifikatortasten mit der Eingabetaste nicht standardmäßig. Möglicherweise müssen Sie Ihr Terminal so konfigurieren, dass Umschalt+Eingabetaste als Escape-Sequenz gesendet wird.
Windows-Terminal
Öffnen Sie Ihre settings.json unter:
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
Fügen Sie dies zum actions-Array auf oberster Ebene hinzu:
"actions": [
{
"command": {
"action": "sendInput",
"input": "\u001b[13;2u"
},
"id": "User.sendInput.ShiftEnterCustom"
}
]
Fügen Sie dies zum keybindings-Array auf oberster Ebene hinzu:
"keybindings": [
{
"keys": "shift+enter",
"id": "User.sendInput.ShiftEnterCustom"
}
]
Speichern Sie die Datei und starten Sie das Windows-Terminal neu oder öffnen Sie eine neue Registerkarte.