2013-10-11 14 views
27

Auf der tmux man-Seite habe ich keinen Hinweis darauf gefunden, wie es Schlüssel bezeichnet.tmux send-keys syntax

Zum Beispiel ctrl + r senden Sie tmux tun würde:

tmux send-keys C-r 

und die esc Schlüssel Sie

tmux send-keys Escape 

eine Liste Gibt es tun zu schicken Welches Tastatur Tasten wie tmux sendkeys erwartet Sie zu benennen? Ich habe das Gefühl, dass ich ein Memo verpasst habe, dass einige-lang-vergessen-Programm Syntax für die Bequemlichkeit verwendet.

Hinweis, dies hat nichts mit Tastenbelegungen zu tun.

+0

Ich bin es gewohnt, "^ r" Kontrolle + r zu sein. Woher kommt diese abwegige alternative Syntax? – xxjjnn

Antwort

34

Die Schlüsselnamen, die von send-keys verwendet werden, sind dieselben, die bind-key verwendet.
Vom Key Bindings section des tmux manpage:

Wenn Schlüssel spezifizieren, die meisten repräsentieren sie selbst (zum Beispiel ‚A‘ zu ‚Z‘). Strg-Tasten können das Präfix "C-" oder "^" und Alt (Meta) mit "M-" haben. Darüber hinaus werden die folgenden speziellen Schlüssel Namen angenommen: Up, unten, Linke, Rechts, BSpace, BTab, DC (Löschen), End, Geben Sie , , F1 zu F20, Flucht Startseite, IC (Insert), Npage/ab/PgDn, PPage/PageUp/PgUp, Raum, und Tab.

Obwohl sie nicht in der Manpage aufgeführt sind, gibt es auch spezielle Namen für die Tastatur-spezifischen Tasten: KP0 durch KP9, KP/, KP*, KP-, KP+, KP. und KPEnter.

Einige der mehr kryptischen Schlüsselnamen (BTab, IC, DC, NPage, PPage) wahrscheinlich stammten aus der term Bibliothek.

Emacs Aktien der Konvention der Verwendung C- und M- Präfixe Modifikatoren anzuzeigen (ich wäre nicht überrascht, wenn es früher Nutzungen dieser Konvention sind).

+0

Gibt es eine Möglichkeit, diesen gebundenen Tasten zu entkommen? Angenommen, ich möchte den String 'enter' senden - was send-keys tun, ist der benannte Schlüssel "Enter" –

+4

@ItamarKatz: Verwenden Sie das '-l' (" literal ") Flag:' send-keys -l Enter 'wird die fünf Buchstaben senden:' E' 'n'' t' 'e'' r' (* tmux * 1.7+; für frühere Versionen, brich sie ein wenig auf: zB 'send-keys E nter'). –

+4

Wenn Sie einen Befehl senden und die Eingabetaste drücken möchten, verwenden Sie Leerzeichen, um sie zu trennen: 'send-keys" ls "Enter' – diabloneo