Como copiar uma linha no vi e colá-la no console?

4

Existe um arquivo de texto com comandos bash.

Existe uma maneira de copiar uma linha desse arquivo usando o vi e colá-lo no console? Também pode ser nano.

É a instalação do servidor apenas no console. Nenhum rato deve estar claro.

    
por Pilot6 23.07.2015 / 23:50

4 respostas

4

GPM, "General Purpose Mouse" fornece funções de mouse em um console, o mais útil talvez seja recortar e colar.

Da página do manual:

  

Este pacote tenta ser um servidor de mouse útil para aplicativos   corrida          no console do Linux. Baseia-se no pacote de "seleção", e alguns          de seu código vem da própria seleção. Este pacote destina-se a ser um          substituição de "seleção" como um mecanismo de recortar e colar; isso também          fornece facilidades adicionais.

Recursos adicionais são descritos na seção "Comandos especiais"

sudo apt-get install gpm

Geralmente funciona fora da caixa, pelo menos eu não tive que configurá-lo manualmente.

mas uma boa visão geral de como configurá-lo veja link

ou a página do manual

link

    
por Panther 24.07.2015 / 14:55
2

Em vi existe um modo visual que permite selecionar visualmente o texto. Você pode entrar neste modo pressionando v . Depois de ter entrado neste modo, você pode usar as teclas de seta para selecionar o texto que deseja copiar e colar. Então use y para copiar, p para colar (no local desejado) e, finalmente, você pode usar d para cortar texto (ou apagá-lo).

Existe uma versão especial de vim que você pode obter que suporta X e, portanto, permite acesso à área de transferência do sistema. Mas como é mais fácil não ter muitos deles por aí (já que a versão padrão não tem esses recursos estendidos), é bom compilar a partir da fonte como essa pessoa sugeriu . Então, para fazer isso primeiro, certifique-se de ter mercurial instalado e, se não, instale-o:

sudo apt-get install mercurial

Quando tiver certeza de que está instalado, obtenha as dependências de compilação de vim :

sudo apt-get build-dep vim

Então pegue a fonte com:

hg clone https://vim.googlecode.com/hg/ vim_source

Finalmente, precisamos compilá-lo:

cd vim_source
./configure \
    --enable-perlinterp=dynamic \
    --enable-pythoninterp=dynamic \
    --enable-rubyinterp=dynamic \
    --enable-cscope \
    --enable-gui=auto \
    --enable-gtk2-check \
    --enable-gnome-check \
    --with-features=huge \
    --with-x \
    --with-compiledby="Your Name <[email protected]>" \
    --with-python-config-dir=/usr/lib/python2.7/config
make && sudo make install

ATENÇÃO: Isto irá instalá-lo em /usr/local , então você precisa ter certeza de que está no seu PATH antes de /usr para que seja usado em vez da versão padrão do Ubuntu.

Então você deve conseguir trabalhar com isso:

"+y

Para copiar para a área de transferência do sistema. E:

"+p

Para colar a partir dele.

    
por user364819 24.07.2015 / 00:07
2

No bash, é possível editar o comando atual em um editor, pressionando Ctrl x Ctrl e .

Então:

  1. Comece com um novo prompt, pressione Ctrl x Ctrl e . Isso abrirá um editor novo, em branco, preferencialmente Vim (acredito que o editor seja decidido pelas variáveis VISUAL e EDITOR ).
  2. Abra o arquivo que contém comandos em uma nova guia ou divisão.
  3. Copie os comandos relevantes para o buffer original (provavelmente chamado de algo como bash-fc-xxxxxxxx ).
  4. Salve e saia. Et Voila!
por muru 24.07.2015 / 16:14
1

Eu não sei se existe um buffer global no console do Linux.

Eu encontrei uma solução alternativa. É possível copiar & amp; cole no vi ou nano.

Se algum comando, parte de um comando ou um comando alterado for executado, copiei para o final do arquivo, depois feche o editor e execute

tail -1 file.txt | bash

Alguma linha do arquivo pode ser executada por

sed -n <line_number> file.txt | bash

ou

grep <pattern> file.txt | bash

Mas isso não responde exatamente a minha pergunta. É um tipo de solução alternativa.

    
por Pilot6 24.07.2015 / 00:36