Não há soluções para isso, em termos de fazer o Ctrl-Space passar pelo terminal Bash, no momento da redação deste artigo (1 de setembro de 2016) - mas há uma solução alternativa que pode ser suficiente para muitos usuários: use o PuTTY para conectar-se via SSH, que força o manuseio do Ctrl-Space. (No modo tty, é impossível distinguir Ctrl-Space de Ctrl- @, porque eles são o mesmo código de caractere, mas isso não deve ser um problema, pois, por padrão, o Emacs está configurado para lidar com set-mark-command
isso.)
- Instale o servidor OpenSSH com
sudo apt-get install openssh-server
. Se já estiver instalado, remova-o ( sudo apt-get remove openssh-server
) e reinstale-o para restaurar os arquivos de configuração.
Edite o arquivo / etc / ssh / sshd_config (com sudo), da seguinte maneira:
- Se houver uma configuração de linha não comentada
PermitRootLogin
, comente-a. Adicionar uma linha PermitRootLogin no
.
- Adicione uma linha
AllowUsers USERNAME
, substituindo USERNAME pelo seu nome de usuário Linux (se você não souber o que é isso, execute o comando whoami
no prompt do Bash).
- Idealmente, você deve configurar a autenticação sem senha usando chaves SSH, mas como fazer isso está fora do escopo desta pergunta (existem muitos guias disponíveis; pesquise na web "ssh-keygen sem senha"). Enquanto isso, adicione ou remova o comentário da linha
PasswordAuthentication yes
.
- Set
UsePrivilegeSeparation no
; provavelmente você encontrará uma linha no arquivo dizendo UsePrivilegeSeparation yes
; basta mudar yes
para no
e salvar o arquivo / etc / ssh / sshd_config .
Se algo der errado aqui, você poderá restaurar o arquivo repetindo a etapa 1.
- Inicialização do servidor SSH com o comando
sudo service ssh --full-restart
.
- Usando PuTTY (faça o download aqui ), faça o login
localhost
no campo Hostname, tudo o resto é deixado como padrão. Você será solicitado a inserir seu nome de usuário e senha do Linux.
- Corra
emacs
. Ctrl-space definirá a marca conforme desejado.
(Observe que as etapas acima não tornarão seu sistema capaz de aceitar conexões SSH de outros hosts. Para fazer isso, você também precisará alterar as regras de firewall do Windows para permitir a porta TCP de entrada 22.)
Em outra resposta, você disse: "mas a massa não é um terminal local". Não tenho certeza se você não sabia que poderia usar localhost
dessa maneira ou se estava dispensando o PuTTY por causa da maior sobrecarga em relação a um terminal local. Neste último caso, não me preocuparia, uma sessão SSH interativa é uma carga extremamente leve. (Certamente é muito menos carregado do que executar um sistema X Window, para que você possa executar um GUI Emacs ou um xterm!)
A única desvantagem real de se executar dessa maneira em relação a um terminal direto é que os eventos de colagem são enviados letra por letra, como se você digitasse o conteúdo da área de transferência muito rapidamente, o que pode causar pares elétricos, indentação, expansão de trechos etc. fogo. (A pasta não deve acionar os comandos de acordes de teclas, pois há lógica para detectar uma colagem em andamento e desativar os acordes de teclas até que a colagem seja concluída.)
E também há pelo menos uma grande vantagem sobre o terminal Bash padrão: os eventos do mouse são suportados pelo PuTTY de uma forma que o Emacs possa responder; portanto, ironicamente, você pode mover o ponto com o mouse no PuTTY, mesmo que possa ' t com o terminal local.