Tastenkombinationen
Passen Sie Ihre Tastaturkürzel an.
Passen Sie die Tastaturkürzel von Dropstone mit keymap in tui.json an.
keymap wird mit den integrierten Standardwerten zusammengeführt, daher müssen Sie nur die Kürzel konfigurieren, die Sie ändern möchten.
Das ältere Feld keybinds wird weiterhin als Fallback für die Migration akzeptiert, ist aber veraltet. Wenn keymap vorhanden ist, ignoriert Dropstone keybinds.
Leader-Taste
Dropstone verwendet eine leader-Taste für viele Kürzel. Dies vermeidet Konflikte in Ihrem Terminal.
Standardmäßig ist ctrl+x die Leader-Taste, und Leader-Kürzel erfordern, dass Sie zuerst die Leader-Taste drücken und dann das Kürzel. 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.
Minimales Beispiel
{
"$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"]
}
}
}
}
Keymap-Struktur
keymap.sections ist nach semantischen Bereichen gruppiert. Jeder Bereich enthält Befehlsnamen und die Tastenfolge, die sie auslöst.
| Feld | Beschreibung |
|---|---|
leader | Die Taste, die von <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"]
}
}
}
}
Verwenden Sie für fortgeschrittene Fälle 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 benutzerdefinierten 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",
"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 vorhandene Konfigurationen weiterhin funktionieren, während Benutzer zu 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:
Unter nativem Windows unterscheiden sich die Standardwerte für Rückgängigmachen und Terminal-Suspend für sowohl keymap als auch das Legacy-keybinds:
input.undowird standardmäßig aufctrl+z,ctrl+-,super+zgesetzt, wenn nicht explizit konfiguriert (diectrl+z-Bindung wird hinzugefügt, da Windows-Terminals POSIX-Suspend nicht unterstützen).terminal.suspendist deaktiviert, da native Windows-Terminals POSIX-Suspend nicht unterstützen.
Integrierte Input-Kürzel
Die Prompt-Eingabe unterstützt gängige Readline/Emacs-ähnliche Kürzel zum Bearbeiten von Text. Dies sind integrierte Standardwerte: Sie können sie im Abschnitt input von tui.json oben überschreiben.
| Kürzel | Aktion |
|---|---|
ctrl+a | Zum Anfang der aktuellen Zeile gehen |
ctrl+e | Zum Ende der aktuellen Zeile gehen |
ctrl+b | Cursor ein Zeichen zurück bewegen |
ctrl+f | Cursor ein Zeichen vorwärts bewegen |
alt+b | Cursor ein Wort zurück bewegen |
alt+f | Cursor ein Wort vorwärts bewegen |
ctrl+d | Zeichen unter dem Cursor löschen |
ctrl+k | Bis zum Ende der Zeile löschen |
ctrl+u | Bis zum Anfang der Zeile löschen |
ctrl+w | Vorheriges Wort löschen |
alt+d | Nächstes Wort löschen |
ctrl+t | Zeichen transponieren |
ctrl+g | Popovers abbrechen / laufende Antwort |
Shift+Enter
Einige Terminals senden standardmäßig keine Modifiziertasten mit Enter. Möglicherweise müssen Sie Ihr Terminal so konfigurieren, dass Shift+Enter 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 Root-Level-Array actions hinzu:
"actions": [
{
"command": {
"action": "sendInput",
"input": "\u001b[13;2u"
},
"id": "User.sendInput.ShiftEnterCustom"
}
]
Fügen Sie dies zum Root-Level-Array keybindings hinzu:
"keybindings": [
{
"keys": "shift+enter",
"id": "User.sendInput.ShiftEnterCustom"
}
]
Speichern Sie die Datei und starten Sie Windows Terminal neu oder öffnen Sie einen neuen Tab.