Ursprünglich bei Unix.stackexchange.com veröffentlicht, aber ich kann die Antwort nicht abschließen, daher ist dies eine Kopie:
Die "Kill" Bedeutung von Ctrl+ Cist sehr alt, ich denke sogar älter als Unix. Wikipedia führt es auf TOPS-10 zurück, das aus den späten 1960er Jahren stammen würde. Der Artikel erklärt, warum Ctrl+ Ceine vernünftige Wahl war: in ASCII, die im Jahr 1963 veröffentlicht wurden, wird das entsprechende Zeichen ETX, End-of-Text . Ohne ein Zeichen für „Stopp“ ¹ war ein Zeichen für „Dieses Eingabesegment ist beendet“ eine vernünftige Wahl für „Stoppen der aktuellen Verarbeitung“.
Die "Kopie" - Bedeutung von Ctrl+ Cstammt von Xerox PARC, den Erfindern von Copy-Paste in seiner modernen Form (und den meisten anderen Grundlagen grafischer Benutzeroberflächen). Ich weiß nicht genau, wann das war, aber es muss Ende der 70er Jahre gewesen sein. In diesem Thread zu User Experience Stack Exchange wird die Auswahl der Tastenzuordnungen beschrieben. C für Kopie macht sehr viel Sinn.
Es gab wenig Grund für PARC, Ctrl+ Caufgrund der bestehenden Bedeutung in TOPS-10- und Unix-Terminals + für die Ablehnung zurückzuweisen . Betriebssysteme und Anwendungen waren damals vielfältiger, und weitaus weniger Menschen verwendeten Computer. Es gab weder Gelegenheit noch einen einzigen Standard für Schlüsselbindungen in allen Anwendungen. Weitere Anwendungen für Ctrl+ Cin gängigen Anwendungen sind das Abblättern in WordStar² und der modusspezifische Befehl in Emacs. Alle wurden unabhängig voneinander für Anwendungen mit häufig unterschiedlichen Anforderungen in unterschiedlichen Umgebungen entwickelt.
Sie können die Terminal-Tastenzuordnungen mit dem
stty
Befehl konfigurieren . Die Terminalbindungen sind aktiv, wenn sich das Terminal im gekochten Modus befindet³. Beispielsweise setzt der Befehlstty intr ^G
das Zeichen, das ein SIGINT-Signal sendet, auf Ctrl+ Ganstatt auf Ctrl+ C. Das^G
Zeichen ist BEL in ASCII; Wenn Sie an ein Terminal gesendet werden, bedeutet dies „Klingel“. Es ist das Zeichen, das Emacs für „Unterbrechung des aktuellen Vorgangs“ verwendet (Begründung: Die Anwendung sendet BEL über das Terminal an den Benutzer, um den Benutzer zu unterbrechen; der Benutzer sendet BEL an die Anwendung über das Terminal, um die Anwendung zu unterbrechen). Es hat keine Standardbedeutung, wenn es an ein Terminal gesendet wird.Die meisten Shells bieten Funktionen zur Linienbearbeitung, sodass das Terminal in den Rohmodus versetzt wird. Vollbild-Textmodusanwendungen. Möglicherweise müssen Sie diese Anwendungen so konfigurieren, dass Ctrl+ G anstelle von Ctrl+ erkannt wird C, und einige verfügen möglicherweise über nicht konfigurierbare Tastenzuordnungen. Das Ändern des Interrupt-Zeichens kann also abhängig von den verwendeten Anwendungen praktisch durchführbar sein oder auch nicht.
Ein anderer Ansatz könnte darin bestehen, Ihr Terminal so zu konfigurieren, dass es die Bytefolge ändert, die es für den Ctrl+ C -Schlüsselsatz sendet, oder dass es nichts sendet und stattdessen einen Kopiervorgang ausführt. Sie würden auch einen anderen Tastaturkordel zum Senden Ctrl+ wählen C(wenn Sie eine Tastatur eines Nicht-Laptop-PCs haben, können Sie die Out-of-the-way Pause/ Break -Taste verwenden). Nicht alle Terminals können auf diese Weise konfiguriert werden.
¹ Ctrl-S (XOFF) bedeutet stop, aber es ist an das Terminal gerichtet, nicht an die Anwendung. ² Weiter zu Ctrl+ Xfür die nächste Zeile, mit Ctrl+ Eund Ctrl+ Rfür die vorherige Zeile und zum Seitenaufruf; Diese Tasten wurden aufgrund ihrer Anordnung auf einer QWERTY-Tastatur ausgewählt. ³ Nitpick: Der gekochte Modus ist eine Reihe von Terminaleinstellungen, einschließlich der Interpretation mehrerer Zeichen, einschließlich eines Zeichens, das ein Interrupt-Signal sendet.