W chwili pisania tego tekstu (1 września 2016 r.) Nie ma rozwiązania tego problemu , jeśli chodzi o przechodzenie Ctrl-Space przez terminal Bash - ale istnieje obejście, które może być wystarczające dla wielu użytkowników: użyj PuTTY, aby połączyć się przez SSH, który wymusza obsługę Ctrl-Space. (W trybie tty nie można odróżnić Ctrl-Space od Ctrl- @, ponieważ są one tym samym kodem znaków, ale nie powinno to stanowić problemu, ponieważ domyślnie Emacs jest skonfigurowany do obsługi w set-mark-command
ten sposób.)
- Zainstaluj serwer OpenSSH za pomocą
sudo apt-get install openssh-server
. Jeśli został już zainstalowany, usuń go ( sudo apt-get remove openssh-server
), a następnie zainstaluj ponownie, aby zresetować pliki konfiguracyjne.
Zmodyfikuj plik / etc / ssh / sshd_config (z sudo) w następujący sposób:
- Jeśli istnieje nieskomentowane ustawienie linii
PermitRootLogin
, skomentuj to. Dodaj linię PermitRootLogin no
.
- Dodaj wiersz
AllowUsers USERNAME
, zastępując USERNAME swoją nazwą użytkownika Linux (jeśli nie wiesz, co to jest, uruchom polecenie whoami
po znaku zachęty Bash).
- Najlepiej jest skonfigurować uwierzytelnianie bez hasła przy użyciu kluczy SSH, ale jak to zrobić jest poza zakresem tego pytania (dostępnych jest wiele przewodników; wyszukaj w sieci hasło „hasło bez klucza haseł ssh”). W międzyczasie dodaj lub odkomentuj linię
PasswordAuthentication yes
.
- Zestaw
UsePrivilegeSeparation no
; prawdopodobnie znajdziesz w pliku wiersz z napisem UsePrivilegeSeparation yes
; Wystarczy zmienić yes
się no
i zapisz ssh sshd_config / etc / / plik.
Jeśli coś pójdzie nie tak, możesz przywrócić plik, powtarzając krok 1.
- Uruchom serwer SSH za pomocą polecenia
sudo service ssh --full-restart
.
- Korzystając z PuTTY (pobierz tutaj ), zaloguj się
localhost
w polu Nazwa hosta, wszystko inne pozostanie jako domyślne. Zostaniesz poproszony o podanie nazwy użytkownika Linux i hasła.
- Uruchom
emacs
. Ctrl-spacja ustawi znak zgodnie z potrzebami.
(Należy pamiętać, że powyższe kroki same w sobie nie spowodują , że system będzie w stanie akceptować połączenia SSH z innych hostów. W tym celu należy również zmienić reguły zapory systemu Windows, aby zezwolić na przychodzący port TCP 22.)
W innej odpowiedzi powiedziałeś: „ale kit nie jest lokalnym terminalem”. Nie jestem pewien, czy nie byłeś świadomy tego, że możesz użyć localhost
w ten sposób, czy też zwalniałeś PuTTY z powodu większego obciążenia w porównaniu z lokalnym terminalem. Jeśli to drugie, nie martwiłbym się, interaktywna sesja SSH jest wyjątkowo lekkim obciążeniem. (To z pewnością znacznie mniejsze obciążenie niż uruchomienie X Window System, więc możesz uruchomić GUI Emacs lub xterm!)
Jedyną prawdziwą wadą działania w ten sposób w porównaniu z prostym terminalem jest to, że zdarzenia wklejania są wysyłane litera po literze, tak jakbyś bardzo szybko wpisywał zawartość schowka, co może powodować pary elektryczne, wcięcia, rozwinięcie fragmentu itp. ogień. (Wklejanie nie powinno powodować uruchamiania poleceń akordów klawiszowych, ponieważ istnieje logika umożliwiająca wykrycie wklejania w toku i wyłączanie akordów klawiszowych do czasu zakończenia wklejania).
Jest też co najmniej jedna bardzo duża przewaga nad standardowym terminalem Bash: zdarzenia myszy są obsługiwane przez PuTTY w formie, na którą Emacs może zareagować, więc, o ironio, możesz przesunąć punkt za pomocą myszy w PuTTY, nawet jeśli możesz ' t z terminalem lokalnym.