Como executar um comando sem pressionar a tecla Enter?


119

Acidentalmente mapeei Entervia xkbsetpara Pointer_button2.

Agora, toda vez que eu Enterclico em algum texto sem sentido, aparece.

Pensei em uma solução alternativa que envolvia remapear novamente, mas isso significa que terei que executar um comando xmodmap -e "keycode 135 = Pointer_Button2"(ou qualquer outro código de chave, exceto o de Enter). Mas não consigo executar este comando no terminal, sem pressionar Enter.

Como eu faço isso?

Estou executando o Ubuntu 12.04.


5
Um dia os computadores poderão desfazer qualquer coisa. Como temos agora com os instantâneos do sistema de arquivos, mas com o conteúdo da RAM ... como reverter o que estamos fazendo. Cancele a inserção de um comando. Abra um arquivo. Desinstale um programa. A não execução dura 5 minutos. Então, mais tarde, a internet alcançará ... Un-read a web-site: Você nunca esteve lá! Talvez um dia possamos resolver os acidentes de automóvel, restaurar os postes da lâmpada para a posição vertical etc.
Johan

2
@Johan Que tipo de substâncias você tomou quando escreveu esse comentário? </kidding>
Luc M

Respostas:


125

Você pode usar CTRL+ Jou CTRL+ Mcomo uma alternativa a Enter. Eles são os caracteres de controle para alimentação de linha (LF) e retorno de carro (CR).


4
Poxa ... por que pessoas com 6.705 pontos não podem deixar algumas dessas perguntas fáceis para as vastas massas não lavadas responderem? (Brincadeirinha - 1 para a resposta que eu estava indo para postar.)
Jan Steinman

5
@ JanSteinman Porque então eles teriam apenas 6.330 pontos (6705 - 15 - 36 * 10). : P
ernie

3
@ JanSteinman: Eu deixei passar! Já havia três outras respostas quando respondi e uma foi aceita. Parece que hoje em dia as crianças não conhecem o ASCII :-) (@ernie: há um limite de reputação diário, então você não recebe todos esses pontos).
Camh

Agradecemos por aceitar algumas nervuras bem-humoradas - sem nenhuma intenção. Se você conhece, mostre!
Jan Steinman

2
@ user13107 Não é tão histórico quanto apenas a própria definição de código ASCII. Quando o ASCII era praticamente tudo o que havia (a menos que você estivesse na IBM), as teclas Return e Linefeed tinham que ser codificadas como algo para que pudéssemos digitá-las em nossos confiáveis ​​teletipos ASR-33 ou nossos cartões perfurados. Existe até um pacote ascii que você pode instalar que o exibirá. A tecla Ctrl pegou o código de um dos primeiros 32 caracteres e voltou um pouco a 0. Para M, mudou um 4D para um 0D que é um retorno de carro (e realmente havia um carro em um ASR-33. )
Joe

40

Em uma janela de terminal (I testado apenas aterm, rxvt, vtee xterm), você pode selecionar o fim da linha, que colou de volta tem o efeito de prensagem Enter:

#          ____________type the command____________  __select to end of line__
#         /                                        \/                         \
bash-4.2$ xmodmap -e "keycode 135 = Pointer_Button2"

Em seguida, cole o texto selecionado de volta na janela do terminal com o clique do botão do meio do mouse (ou com o clique simultâneo do botão esquerdo e direito do mouse, se configurado).


1
Legal! Eu pensei que não havia como copiar e colar caracteres não imprimíveis.
user13107

26

Execute o comando a partir de um terminal não-X.

CTRL+ ALT+ F2deve levá-lo a um console normal. Entre como seu usuário normal e execute o comando lá.

xmodmapafeta apenas as sessões X, portanto, ele precisa DISPLAYtrabalhar fora do servidor X, desta forma:

DISPLAY=:0 xmodmap

Obrigado. Mas dá erro quexmodmap unable to open display ``
user13107 17/10/12

1
Você pode exibir DISPLAY="0"ou editar o arquivo em$HOME/.Xmodmap
Burhan Khalid

6
DISPLAY=:0
Erro de

14

Você pode colocá-lo em um script (.sh) e clicar duas vezes nele. Os ambientes de desktop mais modernos oferecem a opção de executar um script em vez de abri-lo em um arquivo de texto.


Obrigado. Tentei. Não encontrou a opção de executá-lo como um script.
user13107

Está bem. Funciona após alterar as propriedades do arquivo.
user13107

11

Se você possui um mouse e uma exibição gráfica, pode copiar o final de uma linha anterior no seu terminal e colá-la no final do seu comando.


4

CTRL+ Oé outra opção. Com o bash, ele executa o comando e passa para o próximo mais recente da história, é útil voltar a uma cadeia de comandos executados anteriormente.


1

Se você possui um mouse, basta copiar este -> "

"

e cole próximo ao seu comando e cole o comando inteiro no terminal.

Gostar insira a descrição da imagem aqui


Isso já foi dado como resposta
Philippos
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.