Il n'y a pas de solution à cela, en termes de faire passer Ctrl-Espace via le terminal Bash, au moment de la rédaction de ce document (1 septembre 2016) - mais il existe une solution de contournement qui peut être suffisante pour de nombreux utilisateurs: utilisez PuTTY pour vous connecter via SSH, qui force la gestion de Ctrl-Espace. (En mode tty, il est impossible de distinguer Ctrl-Espace de Ctrl-@, car ce sont les mêmes codes de caractères, mais cela ne devrait pas être un problème, car par défaut Emacs est configuré pour gérer de set-mark-command
cette façon.)
- Installez le serveur OpenSSH avec
sudo apt-get install openssh-server
. S'il était déjà installé, supprimez-le ( sudo apt-get remove openssh-server
), puis réinstallez-le pour réinitialiser les fichiers de configuration.
Modifiez le fichier / etc / ssh / sshd_config (avec sudo), comme suit:
- S'il existe un paramètre de ligne non
PermitRootLogin
commenté, mettez-le en commentaire. Ajoutez une ligne PermitRootLogin no
.
- Ajoutez une ligne
AllowUsers USERNAME
, en remplaçant USERNAME par votre nom d'utilisateur Linux (si vous ne savez pas ce que c'est, exécutez la commande whoami
à votre invite Bash).
- Idéalement, vous devez configurer l'authentification sans mot de passe à l'aide des clés SSH, mais la façon de procéder est hors de portée de cette question (il existe de nombreux guides disponibles; recherchez sur le Web "ssh-keygen sans mot de passe"). En attendant, ajoutez ou décommentez la ligne
PasswordAuthentication yes
.
- Set
UsePrivilegeSeparation no
; vous trouverez probablement une ligne dans le fichier disant UsePrivilegeSeparation yes
; changez simplement le yes
en no
et enregistrez le fichier / etc / ssh / sshd_config .
Si quelque chose ne va pas ici, vous pouvez restaurer le fichier en répétant l'étape # 1.
- Démarrez le serveur SSH avec la commande
sudo service ssh --full-restart
.
- En utilisant PuTTY (télécharger ici ), connectez-vous avec
localhost
dans le champ Hostname, tout le reste par défaut. Il vous sera demandé de saisir votre nom d'utilisateur Linux et votre mot de passe.
- Courez
emacs
. Ctrl-espace définira la marque comme vous le souhaitez.
(Notez que les étapes ci-dessus ne permettront pas en soi à votre système d'accepter les connexions SSH d' autres hôtes. Pour ce faire, vous devrez également modifier vos règles de pare-feu Windows pour autoriser le port TCP 22 entrant.)
Dans une autre réponse, vous avez dit: "mais le mastic n'est pas un terminal local". Je ne sais pas si vous ne saviez pas que vous pouviez utiliser localhost
de cette manière, ou si vous rejetiez PuTTY en raison de la surcharge supplémentaire par rapport à un terminal local. Si ce dernier, je ne m'inquiète pas, une session SSH interactive est une charge extrêmement légère. (C'est certainement beaucoup moins de charge que d'exécuter un système X Window, vous pouvez donc exécuter une interface graphique Emacs ou un xterm!)
Le seul inconvénient réel à fonctionner de cette façon par rapport à un terminal droit est que les événements de collage sont envoyés lettre par lettre, comme si vous tapiez très rapidement le contenu du presse-papiers, ce qui peut provoquer des paires électriques, des indentations, une expansion des extraits, etc. Feu. (Le collage ne doit pas provoquer le déclenchement des commandes d'accords de touche, car il existe une logique pour détecter un collage en cours et désactiver les accords de clé jusqu'à ce que le collage soit terminé.)
Et il y a au moins un très gros avantage par rapport au terminal Bash standard: les événements de souris sont pris en charge par PuTTY sous une forme à laquelle Emacs peut répondre, donc, ironiquement, vous pouvez déplacer le point avec la souris dans PuTTY même si vous le pouvez '' t avec le terminal local.