Como copiar o conteúdo do colar no editor VI?

108

Eu tentei usar CTRL + V para colar o conteúdo em um documento do editor VI, mas CTRL + V não é interpretado como uma pasta.

    
por Rpj 16.02.2013 / 09:13

10 respostas

130

Primeiro, verifique se você está no modo de edição (pressione i ). Então você pode colar com Ctrl + Deslocar + V , se você estiver em um emulador de terminal como gnome-terminal (ou selecionar "Colar" no menu do botão direito).

Você também pode digitar :set paste no vim antes de colar para desabilitar o recuo automatizado, etc. Em seguida, :set nopaste depois de colar o conteúdo.

Verifique também esta questão em stackoverflow.com para obter mais informações.

Se você deseja copiar / colar linhas em vim (ao invés de colar o conteúdo da área de transferência), você vai querer verificar o comando yank . Aqui está uma folha de dicas que pode ajudar.

    
por Attila O. 16.02.2013 / 09:27
50

Vi (e Vim) funciona de forma muito diferente em comparação com um editor de texto normal, como o Gedit. Ele também tem uma curva de aprendizado bastante íngreme. Se você quiser aprender alguns comandos básicos, comece com este tutorial interativo .

No entanto, para responder à sua pergunta. O conteúdo da área de transferência do sistema pode ser acessado através do registro de adição. Então, para colar algo da área de transferência do sistema, você pode, no modo Normal, pressionar: "+ p (não ao mesmo tempo, mas um após o outro).

    
por Daniel Jonsson 16.02.2013 / 09:34
20
  1. Se você quiser copiar o conteúdo da pasta no mesmo arquivo , use yank e paste .

  2. Se você quiser copiar o conteúdo da pasta nos terminais , abra o primeiro arquivo, puxando o texto desejado, abra o segundo arquivo no vim (por exemplo, :tabnew /path/to/second/file ) e pressione p para colá-lo.

  3. Se você deseja copiar o conteúdo do do vim para um programa externo , é necessário acessar a área de transferência do sistema. Eu suponho que você use o Ubuntu. A versão GUI do vim sempre tem suporte ao clipboard, no entanto, se você gosta de usar o Vim a partir de um terminal, você terá que verificar o suporte do X11-clipboard.

    No console, digite:

    $ vim --version | grep xterm
    

    Se você encontrar -xterm_clipboard , terá duas opções:

    1) Compile o vim você mesmo, com o sinalizador xterm_clipboard em

    2) Desinstale o vim, instale o gvim (vim-gtk ou vim-gnome). Você pode ficar com o não-gui vim ligando para o vim do terminal, da mesma forma que você fez antes. Desta vez, quando você verificar, você deve encontrar + xterm_clipborad .

    Agora, quando você puxa algum texto no registrador + dentro do seu editor vim (por exemplo, "+ yy), ele também é copiado para a área de transferência do sistema, que pode ser recuperado do programa externo, usando Ctrl + V .

  4. Se você quiser copiar o conteúdo da pasta de um programa externo para o vim , primeiro copie seu texto na área de transferência do sistema através de Ctrl + C então no editor vim inserir modo , clique no botão do meio do mouse (geralmente a roda) ou pressione Ctrl + Deslocamento + V para colar.

    Estas são 4 cópias básicas & amp; cole condições relacionadas ao vim. Espero que isso ajude.

por 47dev47null 20.02.2013 / 06:53
14

Eu sempre uso Shift + Inserir quando quero colar texto no terminal, funciona em todos os programas de terminal.

(Essa também é a razão pela qual eu nunca pego um laptop onde você não pode pressionar Insert sem pressionar uma tecla secundária)

    
por Magnus Jonsson 17.02.2013 / 17:59
10

Use o botão central do mouse para inserir o texto destacado em outro lugar.

Útil quando você não tem acesso à área de transferência do sistema (por exemplo, em uma sessão ssh remota)

Deve estar no modo de edição / inserção para o vim

    
por will-ob 16.02.2013 / 17:09
5

Quando você digitar vi, pressione i para entrar no modo de inserção, clique com o botão direito no terminal, clique em colar.

    
por GC 13 17.02.2013 / 07:34
3

Instruções detalhadas para copiar / colar linhas de texto no vi usando yank e put

(use o seguinte no modo de comando do vi)

Copiar (YANK)

Para copiar uma linha no vi:

  • No modo de comando, mova o cursor para a linha que precisa ser copiada e digite yy ou digite Y

Para copiar 2 linhas no vi:

  • No modo de comando, mova o cursor para a primeira linha que precisa ser copiada e digite 2yy ou digite 2Y

(da mesma forma, qualquer número de linhas pode ser copiado)

Para copiar todas as linhas do local atual até o final do arquivo:

  • No modo de comando, mova o cursor para a primeira linha que precisa ser copiada e digite yG

Para copiar todo o texto da localização atual até o final da palavra atual:

  • No modo de comando, mova o cursor para o local de onde o texto precisa ser copiado e digite yw

Para copiar todo o texto do local atual até o final da linha:

  • No modo de comando, mova o cursor para o local de onde o texto precisa ser copiado e digite y$

Colar (PUT)

Para colar texto na área de transferência - após a localização do cursor:

  • No modo de comando, digite p

Para colar texto na área de transferência - antes da localização do cursor:

  • No modo de comando, digite P
por slayernoah 03.11.2013 / 22:43
0

Se você estiver root : Ctrl + Deslocamento + V

Se você estiver não-root : clique com o mouse no centro.

    
por Eliptical view 01.07.2017 / 08:54
0

Só queria observar que usando o vim via git-bash no Windows, você pode usar apenas p ou clique do mouse sem estar no modo de inserção. Usando vim através de massa, você pode apenas clicar com o botão direito. E o realce faz a cópia.

Eu notei isso porque cheguei aqui sem ver que isso é SE para o Ubuntu.

Outros comandos úteis:

yy(# of lines ) - yank ( copy )
dd(# of lines ) - delete
p - paste line below current line
shift + p - paste line above current line
u - undo
r - redo
i - insert mode 
v - visual mode
    
por Tyler Christian 21.07.2017 / 05:27
0

Eu tive problemas porque meu vim não estava suportando clipboard :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

Eu instalei o vim-gnome (que suporta a área de transferência) e verifiquei novamente:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Agora posso copiar e colar usando "+ ye" + p respectivamente.

    
por Ashutosh Tripathy 09.06.2018 / 13:35

Tags