Como eu seleciono todo o texto no Vi / Vim?

155

Usando a ferramenta VI para editar arquivos de configuração.

Como posso selecionar todo o texto em um arquivo (cerca de 1000 linhas), copiá-lo e colá-lo no Google Docs?

    
por Tarun Gupta 30.12.2010 / 18:05

12 respostas

131

A maneira mais simples e rápida é usar: : % y + e depois passar para o Google Docs (ou onde) e cole. Explicação:

  • % para referenciar o próximo comando para trabalhar em todas as linhas
  • y para extrair essas linhas
  • + para copiar para a área de transferência do sistema

Outra maneira é g g " + y G mas você provavelmente admitirá que o acima é mais rápido e fácil.

    
por 26.03.2012 / 23:30
73

Muitas respostas dadas também arrancam a seleção, o que eu não estava procurando.

Estou usando ggVG para este propósito (precisa ser executado no modo normal). Este comando somente seleciona todo o texto dentro do documento.

Eu inclusive remapeei Ctrl + A para este propósito, já que eu não preciso realmente incrementar um inteiro com o atalho (padrão Ctrl + A map) .

Adicione isso ao seu .vimrc :

map <C-a> <esc>ggVG<CR>

Ele tem <esc> primeiro, para garantir que o usuário esteja no modo normal.

    
por 29.05.2014 / 17:09
36

Você pode usar cat file , selecionar a saída e copiar e colar, se precisar colá-lo no navegador.

Para o vi, é assim que você pode selecionar todo o texto e gravá-lo em um novo arquivo:

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

Em teoria, isso deve funcionar tanto no Linux quanto no Windows - tentei em um Mac, mas não funciona.

    
por 30.12.2010 / 18:21
13

USE ggVG. digite "gg" para ir ao topo do teste Em seguida, digite VG.

    
por 29.12.2014 / 13:47
6

gg"+yG

ou

gg"*yG

dependendo de se o + ou * é a área de transferência do sistema. (Em muitos unixes, o + é o buffer de seleção do mouse para o clique do mouse e * é a área de transferência do sistema).

    
por 30.12.2010 / 20:19
4

Estou usando o Vim 7.4 no ambiente do CentOS-7. O que me ajudou a selecionar todo o texto é

:%y

Em seguida, apenas p no próximo arquivo onde eu quero uma cópia completa.

Ou

Você pode usar o comando cat.

cat copyfile > pastefile

Este repositório git tem outros comandos úteis também.

    
por 17.07.2017 / 06:07
3

Para um Mac, use pbcopy (cópia de papelão):

cat file.txt | pbcopy

O conteúdo do arquivo.txt está agora na área de transferência para colar em outro aplicativo (por exemplo, navegador).

Você também pode colar o conteúdo da área de transferência em um arquivo usando o pbpaste:

pbpaste > file.txt

Embora isso não envolva especificamente o vi, ele atinge o mesmo objetivo em um Mac.

    
por 08.01.2015 / 20:05
1

Se você estiver usando uma área de trabalho Linux, poderá carregá-lo na área de transferência usando xclip ou xsel. Para algo desse tamanho, você pode querer usar o recurso de upload no google docs.

    
por 30.12.2010 / 18:28
1

Outra maneira seria:

Você pressiona a tecla v no seu teclado e vira o VIM para o VISUAL

Em seguida, selecione todo o texto rolando para baixo

^ + INSERIR para copiar

SHIFT + INSERIR para colar o texto onde quiser no Google Docs.

    
por 12.07.2013 / 16:20
0

Sem usar o vi, você pode enviar texto para o Google docs usando a API deles e cURL .

    
por 30.12.2010 / 18:34
0

Consulte o link para saber mais sobre como fazer isso. (se compilado em "* deve referir-se à área de transferência do sistema). Há também instruções de como usar o xsel com o vim.

    
por 30.12.2010 / 18:38
0

Use o seguinte comando.

cat <your file name>

Ele irá ecoar o conteúdo do arquivo. Agora selecione, role, copie, cole.
Game Over

Ex .:

cat bobis.txt
    
por 19.08.2014 / 09:27

Tags