Selecionando texto no terminal sem usar o mouse

42

Estou prestes a pressionar enter para executar um comando no terminal, mas antes de fazer isso, quero copiar o comando para a área de transferência sem usar o mouse.

Como?

Se você estiver em outro lugar que não seja o terminal, Ctrl + Início faz isso.

Existe uma maneira arbitrária de selecionar texto como esse no terminal?

EDITADO:

  • assuma que usar outros programas como screen não é uma boa alternativa
  • o texto deve ser colado fora do terminal, então Ctrl + y e seqüências similares também não o resolvem
por Strapakowsky 31.05.2013 / 04:50

5 respostas

12

Vincular atalho seguinte:

bind '"\C-p": "\C-e\C-u xsel <<"EOF"\n\C-y\nEOF\n\C-y"'

Agora, depois de usar Crtl + P , sua linha será copiada para a área de transferência. Você pode colá-lo no terminal usando:

xsel

E em qualquer aplicativo X usando o botão do meio do mouse.

    
por Nykakin 31.05.2013 / 08:28
13

Se você estiver usando uma das shells que entende as chaves emacs (bash, csh, etc.), então você pode copiar o comando atual:

  1. control-A leva você até o começo da linha.

  2. control-K eliminará toda a linha que você acabou de inserir.

  3. control-Y irá puxar o texto de volta.

Depois, você pode control-Y puxar o texto de volta para inserir o texto de volta como entrada para o editor de linha de comando do shell.

Veja man bash e, quando aparecer, digite /emacs seguido por alguns n (próximo) para avançar para a seção READLINE.

    
por ElderDelp 31.05.2013 / 06:25
6

O mais próximo que eu posso pensar é ctrl + u , ctrl + y
Isso excluiria da maldição para o início da linha e depois colaria do buffer readline. Isso não é exatamente o mesmo que a área de transferência, mas você seria capaz de colar dentro do shell, se é isso que você precisa.

    
por demure 31.05.2013 / 05:03
5

Existe um programa chamado tela. Ele cria um sistema de janelas de texto que permite alternar entre várias instâncias. Mas também permite que você selecione o texto.

sudo apt-get install screen

Esse comando instala-o.

Em seguida, digite screen

Você usa ctr-a para iniciar a sequência de comandos. Em seguida, pressione esc e o cursor se moverá em qualquer direção. Pressione enter para iniciar a seleção de texto, mover para o ponto final e pressione enter novamente. Isso será copiado para o buffer.

Em seguida, ctr-a e depois} colará

Mais detalhes sobre outros comandos aqui link

    
por Meer Borg 31.05.2013 / 05:00
0

Se você estiver dentro do vim, você pode visualmente selecionar uma ou mais linhas com Shift + v e então usar uma ligação, por exemplo. y y , para canalizar a seleção para xclip .

Adicione a ligação ao seu vimrc:

vnoremap yy :w !xclip -selection clipboard<CR><CR>

Isso requer que o xclip esteja instalado, ele está no repositório de aptidões Debian / Ubuntu.

xclip armazena stdin, com a opção -selection clipboard ele também envia stdin para a área de transferência do sistema.

Portanto, você também pode usar xclip de um modo genérico do terminal, por exemplo, para copiar um arquivo inteiro para a área de transferência do sistema:

cat myfile | xclip -selection clipboard

Se você também puder criar um alias, como:

alias cb="xclip -selection clipboard" 
    
por Kris 16.08.2016 / 10:21