Zum Zeitpunkt des Schreibens (1. September 2016) gibt es keine Lösung , um Strg-Leertaste das Bash-Terminal passieren zu lassen. Es gibt jedoch eine Problemumgehung, die für viele Benutzer ausreichen könnte: Verwenden Sie PuTTY, um eine Verbindung über herzustellen SSH, das den Umgang mit Ctrl-Space erzwingt. (Im tty-Modus ist es unmöglich, Strg-Leertaste von Strg-@ zu unterscheiden, da es sich um denselben Zeichencode handelt, dies sollte jedoch kein Problem sein, da Emacs standardmäßig so eingerichtet ist set-mark-command
.)
- Installieren Sie den OpenSSH-Server mit
sudo apt-get install openssh-server
. Wenn es bereits installiert war, entfernen Sie es ( sudo apt-get remove openssh-server
) und installieren Sie es erneut, um die Konfigurationsdateien zurückzusetzen.
Bearbeiten Sie die Datei / etc / ssh / sshd_config (mit sudo) wie folgt:
- Wenn eine unkommentierte Zeileneinstellung vorhanden ist
PermitRootLogin
, kommentieren Sie sie aus. Fügen Sie eine Zeile hinzu PermitRootLogin no
.
- Fügen Sie eine Zeile hinzu
AllowUsers USERNAME
und ersetzen Sie USERNAME durch Ihren Linux-Benutzernamen (wenn Sie nicht wissen, was das ist, führen Sie den Befehl whoami
an der Bash-Eingabeaufforderung aus).
- Im Idealfall sollten Sie die kennwortlose Authentifizierung mit SSH-Schlüsseln einrichten. Die Vorgehensweise ist jedoch nicht Gegenstand dieser Frage (es stehen zahlreiche Anleitungen zur Verfügung; durchsuchen Sie das Web nach "kennwortlosem ssh-keygen"). In der Zwischenzeit können Sie die Zeile hinzufügen oder auskommentieren
PasswordAuthentication yes
.
- Set
UsePrivilegeSeparation no
; wahrscheinlich finden Sie eine Zeile in der Datei, in der steht UsePrivilegeSeparation yes
; ändere einfach die yes
in no
und speichere die / etc / ssh / sshd_config Datei.
Wenn hier etwas schief geht, können Sie die Datei wiederherstellen, indem Sie Schritt 1 wiederholen.
- Starten Sie den SSH-Server mit dem Befehl
sudo service ssh --full-restart
.
- Melden Sie sich mit PuTTY ( hier herunterladen )
localhost
im Feld Hostname an, alles andere bleibt standardmäßig erhalten. Sie werden aufgefordert, Ihren Linux-Benutzernamen und Ihr Passwort einzugeben.
- Laufen
emacs
. Strg-Leertaste setzt die Markierung wie gewünscht.
(Beachten Sie, dass die obigen Schritte nicht dazu führen , dass Ihr System SSH-Verbindungen von anderen Hosts akzeptiert . Dazu müssen Sie auch Ihre Windows-Firewallregeln ändern, um eingehenden TCP-Port 22 zuzulassen.)
In einer anderen Antwort sagten Sie: "Aber Kitt ist kein lokales Terminal." Ich bin mir nicht sicher, ob Sie sich dessen nicht bewusst waren localhost
, oder ob Sie PuTTY aufgrund des höheren Overheads im Vergleich zu einem lokalen Terminal entlassen haben. In letzterem Fall ist eine interaktive SSH-Sitzung eine extrem leichte Last. (Es ist sicherlich viel weniger Last als das Ausführen eines X Window Systems, so dass Sie ein GUI Emacs oder ein xterm ausführen können!)
Der einzige wirkliche Nachteil beim Ausführen dieser Methode im Vergleich zu einem geraden Terminal besteht darin, dass Einfügeereignisse Buchstabe für Buchstabe gesendet werden, als ob Sie den Inhalt der Zwischenablage sehr schnell eingegeben hätten, was zu elektrischen Paaren, Einrückungen, Auszügen usw. führen kann Feuer. (Das Einfügen sollte nicht dazu führen, dass Tastaturbefehle ausgelöst werden, da es eine Logik gibt, um ein laufendes Einfügen zu erkennen und Tastaturakkorde zu deaktivieren, bis das Einfügen abgeschlossen ist.)
Und es gibt mindestens einen großen Vorteil gegenüber dem Standard-Bash-Terminal: Mausereignisse werden von PuTTY in einer Form unterstützt, auf die Emacs reagieren kann, sodass Sie ironischerweise den Punkt mit der Maus in PuTTY verschieben können, selbst wenn Sie t mit dem lokalen Terminal.