Dans Windows 10, j'ai installé un sous-système pour Linux Bash. Mais j'ai un problème de raccourci dans emacs Ctrl+space Ne définit pas le point de marque.
Ce que j'ai essayé et n'aide pas n'aide:
J'ai essayé de décocher "Activer les raccourcis clés CTRL" dans le menu Propriétés pour la console Windows
J'ai essayé d'utiliser différents terminaux conemu sans succès.
Je me demande si cela est en quelque sorte lié à Ubuntu, qui a des problèmes similaires avec Ctrl + Space, et Windows Linux Bash utilise des référentiels Ubuntu.
Il n'y a pas solutions À cela, en termes de réussite de Ctrl-Space Pass via le terminal Bash, au moment de cette écriture (1 sept. 2016) - mais il y a une solution de contournement qui peut être suffisante Pour de nombreux utilisateurs: Utilisez Putty pour se connecter via SSH, qui force la gestion de l'espace Ctrl. (En mode TTY, il est impossible de distinguer le Ctrl-Space de Ctrl- @, car ils sont le même code de caractère, mais cela ne devrait pas être un problème, comme par défatage par défaut est configuré pour gérer set-mark-command
manière.)
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 obtenir la réinitialisation des fichiers de configuration.Modifier le /etc/ssh/sshd_config Fichier (avec sudo), comme suit:
PermitRootLogin
, commencez-le. Ajouter une ligne PermitRootLogin no
.AllowUsers USERNAME
, Remplacement du nom d'utilisateur avec votre nom d'utilisateur Linux (si vous ne savez pas ce que c'est, exécutez la commande whoami
à votre invite de bash).PasswordAuthentication yes
.UsePrivilegeSeparation no
; probablement, vous trouverez une ligne dans le fichier en disant UsePrivilegeSeparation yes
; Il suffit de changer le yes
à no
et enregistrez le /etc/ssh/sshd_config Fichier.Si quelque chose ne va pas ici, vous pouvez restaurer le fichier en répétant l'étape 1.
Sudo service ssh --full-restart
.localhost
dans le champ d'hôte, tout reste à titre de défaut. Vous serez invité à entrer votre nom d'utilisateur Linux et votre mot de passe.emacs
. Ctrl-Space définira la marque comme vous le souhaitez.(Notez que les étapes ci-dessus seront non, par elles-mêmes, faites votre système capable d'accepter des connexions SSH de Autres hôtes. Pour ce faire, vous devrez également modifier vos règles de pare-feu Windows pour autoriser le port TCP Inbound 22.)
Dans ne autre réponse Vous avez dit: "Mais le mastic n'est pas un terminal local." Je ne sais pas si vous n'étiez pas conscient que vous pouvez utiliser localhost
de cette manière, ou si vous supprimez le mastic à cause de la plus grande surcharge par rapport à un terminal local. Si ce dernier, je ne m'inquiéterais pas, une session interactive SSH est une charge extrêmement légère. (C'est certainement beaucoup Moins de charge que d'exécuter un système de fenêtre X afin que vous puissiez exécuter une interface graphique Emacs ou un xterm!)
Le seul inconvénient réel à exécuter de cette façon par rapport à un terminal droit est que les événements de pâte sont envoyés par lettre de lettre, comme si vous avez saisi le contenu du presse-papiers très rapide, ce qui peut provoquer des paires électriques, une indication, une expansion de l'extraction, etc. Feu. (Coller devrait non Cause des commandes de l'accord de clé à tirer, car il y a une logique pour détecter une pâte en cours et désactiver des accords de clé jusqu'à la fin de la pâte.)
Et il y a au moins un très grand avantage sur le terminal Bash standard, également: les événements de la souris sont supportés par des mastics sous une forme que EMACS peut répondre, de manière ironique, vous pouvez déplacer le point avec la souris dans le mastic même si vous le pouvez ' t avec le terminal local.
J'utilise Conemu. Il n'y a pas de manière élégante, mais elle peut être résolue à l'aide de la macro.
☰
icône sur le dessus).Coller ci-dessous dans le champ Macro Gui :
keys("\e");keys("x");keys("s");keys("e");keys("t");keys("-");keys("m");keys("a");keys("r");keys("k");keys("-");keys("c");keys("o");keys("m");keys("m");keys("a");keys("n");keys("d");keys("\n")
ci-dessus envoie essentiellement M-x select-mark-command
chaîne à emacs. Maintenant, cliquez sur "Enregistrer les paramètres".
Cela devrait ressembler à ceci à la fin:
Ce projet vous permet d'utiliser MINTYTY comme terminal alternatif: https://github.com/mintty/wslttty . Il est dérivé de mastic, mais ne nécessite pas SSH. Et comme le mastic, il gère le Ctrl-Space très bien.
Lors de la course showkey -a
Dans la console Windows/Ubuntu-Bash, il montre que Ctrl + Space envoie simplement une plaine de plaine.
Et c'est le même problème avec la session SSH à toute autre machine Linux Ctrl + Space est envoyée comme espace ordinaire.
Le même comportement est avec tout autre terminal Windows (Conemu, consolez, Mobaxterm), sauf le mastic peut gérer ce puits mais le mastic n'est pas un terminal local.
Je pense que les terminaux de Windows n'ont pas de mappages pour certaines séquences. Le même problème est avec d'autres combinaisons telles que CTRL + 1 Ctrl + 2 .., etc. Le terminal peut gérer les mappages de clavier pour elle-même comme mastic par exemple.
Je crois que cette question devrait être corrigée dans les versions futures du terminal Windows Bash.
Ce problème est maintenant fixé dans Windows 10 Build 14965 . Vérifier:
[Environment]::OSVersion
Et installer des mises à jour si vous ne l'avez pas!