Non ci sono soluzioni a questo, in termini di far passare Ctrl-Spazio attraverso il terminale Bash, al momento in cui scrivo (1 settembre 2016), ma esiste una soluzione alternativa che può essere sufficiente per molti utenti: utilizzare PuTTY per connettersi tramite SSH, che forza la gestione di Ctrl-Spazio. (Nella modalità tty, è impossibile distinguere Ctrl-Spazio da Ctrl- @, perché hanno lo stesso codice carattere, ma questo non dovrebbe essere un problema, poiché per impostazione predefinita Emacs è impostato per gestirlo in set-mark-command
quel modo.)
- Installa il server OpenSSH con
sudo apt-get install openssh-server
. Se era già installato, rimuoverlo ( sudo apt-get remove openssh-server
) e quindi reinstallarlo per ripristinare i file di configurazione.
Modifica il file / etc / ssh / sshd_config (con sudo), come segue:
- Se è presente un'impostazione di linea
PermitRootLogin
non commentata, commentarla. Aggiungi una linea PermitRootLogin no
.
- Aggiungi una riga
AllowUsers USERNAME
, sostituendo USERNAME con il tuo nome utente Linux (se non sai di cosa si tratta, esegui il comando whoami
al tuo prompt di Bash).
- Idealmente, dovresti impostare l'autenticazione senza password usando le chiavi SSH, ma come farlo non rientra nell'ambito di questa domanda (ci sono molte guide disponibili; cerca nel web "senza password ssh-keygen"). Nel frattempo, aggiungi o decommenta la linea
PasswordAuthentication yes
.
- Impostare
UsePrivilegeSeparation no
; probabilmente troverai una riga nel file dicendo UsePrivilegeSeparation yes
; basta cambiare yes
in no
e salvare il file / etc / ssh / sshd_config .
Se qualcosa va storto qui, è possibile ripristinare il file ripetendo il passaggio 1.
- Avviare il server SSH con il comando
sudo service ssh --full-restart
.
- Usando PuTTY (scarica qui ), accedi con
localhost
nel campo Nome host, tutto il resto è lasciato come predefinito. Ti verrà chiesto di inserire il tuo nome utente Linux e la tua password.
- Corri
emacs
. Ctrl-spazio imposterà il segno come desiderato.
(Notare che i passaggi precedenti non renderanno di per sé il sistema in grado di accettare connessioni SSH da altri host. A tale scopo, sarà necessario modificare le regole del firewall di Windows per consentire la porta TCP in ingresso 22.)
In un'altra risposta hai detto "ma lo stucco non è un terminale locale". Non sono sicuro che non fossi a conoscenza del fatto che potresti utilizzare localhost
in questo modo o se stavi licenziando PuTTY a causa delle maggiori spese generali rispetto a un terminale locale. Se quest'ultimo, non mi preoccuperei, una sessione SSH interattiva è un carico estremamente leggero. (È sicuramente molto meno carico dell'esecuzione di un sistema X Window in modo da poter eseguire una GUI Emacs o un xterm!)
L'unico vero svantaggio di correre in questo modo rispetto a un terminale semplice è che gli eventi incolla vengono inviati lettera per lettera, come se si digitasse il contenuto degli appunti molto velocemente, il che può causare coppie elettriche, rientri, espansione di frammenti, ecc. fuoco. (L'incolla non dovrebbe causare l'attivazione dei comandi key-chord, in quanto esiste la logica per rilevare una pasta in corso e disabilitare gli accordi chiave fino al termine della pasta.)
E c'è anche un grande vantaggio rispetto al terminale Bash standard: gli eventi del mouse sono supportati da PuTTY in una forma a cui Emacs può rispondere, quindi, ironicamente, puoi spostare il punto con il mouse in PuTTY anche se puoi ' t con il terminale locale.