Apenas uma observação, o principal motivo para usar o Vi é porque o Vim não está instalado. Se você possui o Vim instalado, provavelmente vale a pena usá-lo. Não há realmente uma vantagem para o Vi, além de já estar presente em todas as instalações do Unix. A melhor maneira de aprender o Vim, na minha opinião, é abrir o emulador de terminal (não no Vim) e digitar vimtutorEle o levará até a velocidade em que é utilizável em cerca de 45 minutos.
Ben Mordecai
11
+1 @BenMordecai - Eu já estava familiarizado com o vi (antigo), incluindo seu conveniente recurso de subcasca, mas precisava dessa atualização. Ótimo pouco de tutoria. Passou por ela como uma brisa. Obrigado.
Cbhihe #
Respostas:
192
Primeiro, verifique se você está no modo de edição (pressione i). Em seguida, você pode colar com Ctrl+ Shift+ V, se estiver em um emulador de terminal como gnome-terminal(ou selecione "Colar" no menu do botão direito do mouse).
Você também pode digitar o :set pastevim antes de colar para desativar o recuo automático etc. Depois de :set nopastecolar o conteúdo.
Verifique também esta pergunta no stackoverflow.com para obter mais informações.
Se você deseja copiar / colar linhas vim(em vez de colar o conteúdo da área de transferência), verifique o comando yank . Aqui está uma folha de dicas que pode ajudar.
Eu acho que se você tiver o cursor do mouse, não poderá colar usando Ctrl + Shift + V.
Alvin Wong
14
Apenas uma observação, diferencia Imaiúsculas de minúsculas. A minúscula ié a maneira normal de entrar no modo de inserção. Capital Icoloca o cursor no início da linha e entra no modo de inserção.
Ben Mordecai
64
O Vi (e o Vim) funciona de maneira muito diferente em comparação com um editor de texto normal, como o Gedit. Ele também tem uma curva de aprendizado bastante acentuada. 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 positivo. Portanto, 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).
No Terminal GNOME, os atalhos para copiar e colar são Ctrl-Shift-C e Ctrl-Shift-V, respectivamente.
Flimm 23/02
11
Tentei pressionar, por sua vez, <kbd> "</kbd>, <kbd> + </kbd> e <kbd> p </kbd>, também <kbd>" </kbd> e <kbd> p < / kbd> e nada aconteceu. O que eu fiz de errado? Eu vinão usovim
user907860
11
Essa é a resposta certa. Usando por exemplo. Ctrl-Shift-v funcionará apenas com o conteúdo mais simples (quebras de linha e indentações podem ficar realmente erradas se você estiver no terminal e se esqueceu de usar set :paste).
rsenna
29
Se você deseja copiar e colar o conteúdo dentro do mesmo arquivo , use yanke paste.
Se você deseja copiar o conteúdo da pasta entre os terminais , abra o primeiro arquivo, puxando o texto desejado, abra o segundo arquivo no vim (por exemplo :tabnew /path/to/second/file) e pressione ppara colá-lo.
Se você deseja copiar o conteúdo da pasta 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 da GUI do vim sempre tem suporte à área de transferência; no entanto, se você gosta de usar o Vim em um terminal, precisará verificar o suporte à área de transferência do X11.
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 no
2) Desinstale o vim, instale o gvim (vim-gtk ou vim-gnome). Você pode usar o vim não gui chamando o vim a partir do terminal, da mesma maneira que fazia antes. Desta vez, quando você verificar, deverá encontrar + xterm_clipborad .
Agora, quando você puxa algum texto no registro + dentro do seu editor vim (por exemplo, "+ yy), ele também é copiado para a área de transferência do sistema, que você pode recuperar do seu programa externo, como o editor do gedit, usando Ctrl+ V.
Se você deseja copiar o conteúdo da pasta de um programa externo para o vim , copie primeiro o texto na área de transferência do sistema via Ctrl+ e C, no modo de inserção do editor do vim , clique no botão do meio do mouse (geralmente a roda) ou pressione Ctrl+ Shift+ Vpara colar.
Estas são 4 condições básicas de copiar e colar relacionadas ao vim. Eu espero que isso ajude.
Qual é o objetivo de: tabnew / path / to / second / file? Você pode obter exatamente a mesma coisa puxando / copiando / recortando no primeiro arquivo, abrindo o segundo arquivo com: vi / caminho / para / segundo / arquivo e colando (p / P) nele. Pelo menos no meu caso ... Ou é porque eu tenho o recurso + xterm_clipboard vim ativado? Ou há mais coisas novas do que apenas isso?
Cbhihe
11
No Ubuntu vim-gtktem xterm_clipboardsuporte e no Fedora xvimtem.
Icc97 18/06/19
18
Eu sempre uso Shift+ Insertquando quero colar texto no terminal, funciona em todos os programas do terminal.
(Essa também é a razão pela qual nunca consigo um laptop onde você não pode pressionar Insertsem pressionar uma tecla secundária)
Com o Vim 8+ no Linux ou Mac, agora você pode simplesmente usar a pasta nativa do SO ( ctrl+shift+Vno Linux, cmd+Vno Mac). Não pressione ipara inserir o modo.
Ele colará o conteúdo da área de transferência do sistema operacional, preservando os espaços e as guias sem adicionar a inserção automática. É equivalente ao velho :set paste, i, ctrl+shift+V, esc, :set nopastemétodo.
Essa é a resposta que estou procurando. Como o Vim não é o padrão nas distribuições gnu / linux, ele precisa ser instalado mesmo no ubuntu. Além disso, os botões para cima e para baixo do Vi não funcionam no ubuntu e não têm destaque.
Eu só queria observar que, usando o Vim via Git Bash no Windows, você pode simplesmente usar pou clicar com o botão central do mouse sem estar no modo de inserção. Usando o Vim através do PuTTY , você pode clicar com o botão direito. E o destaque é a cópia.
Eu notei isso porque cheguei aqui sem ver que este é o SE para Ubuntu.
Isso não funcionou para mim no Windows Git Bash. Qual console você está usando, mintty ou windows cmd?
wisbucky 17/07
Eu acredito que era hortelã.
Tyler Christian
0
Você pode usar Ctrl+ Shift+ Vpara colar na versão terminal vim, mas para a versão GUI do vim Neovim-Qt, colar o texto da área de transferência do sistema com Ctrl+ Shift+ Vsimplesmente não funcionará. Você precisa acessar a área de transferência "+ou "*o editor vim.
A adição de uma nova combinação de teclas .vimrcirá simplesmente copiar / colar os comandos:
" paste from system clipboard, align indentation with surroundings
noremap <Leader>p "*]p:set nopaste<CR>
" copy a sentence into system clipboard
noremap <Leader>y "+y)
vimtutor
Ele o levará até a velocidade em que é utilizável em cerca de 45 minutos.Respostas:
Primeiro, verifique se você está no modo de edição (pressione i). Em seguida, você pode colar com Ctrl+ Shift+ V, se estiver em um emulador de terminal como
gnome-terminal
(ou selecione "Colar" no menu do botão direito do mouse).Você também pode digitar o
:set paste
vim antes de colar para desativar o recuo automático etc. Depois de:set nopaste
colar o conteúdo.Verifique também esta pergunta no stackoverflow.com para obter mais informações.
Se você deseja copiar / colar linhas
vim
(em vez de colar o conteúdo da área de transferência), verifique o comando yank . Aqui está uma folha de dicas que pode ajudar.fonte
I
maiúsculas de minúsculas. A minúsculai
é a maneira normal de entrar no modo de inserção. CapitalI
coloca o cursor no início da linha e entra no modo de inserção.O Vi (e o Vim) funciona de maneira muito diferente em comparação com um editor de texto normal, como o Gedit. Ele também tem uma curva de aprendizado bastante acentuada. 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 positivo. Portanto, 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).
fonte
vi
não usovim
set :paste
).Se você deseja copiar e colar o conteúdo dentro do mesmo arquivo , use
yank
epaste
.Se você deseja copiar o conteúdo da pasta entre os terminais , abra o primeiro arquivo, puxando o texto desejado, abra o segundo arquivo no vim (por exemplo
:tabnew /path/to/second/file
) e pressionep
para colá-lo.Se você deseja copiar o conteúdo da pasta 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 da GUI do vim sempre tem suporte à área de transferência; no entanto, se você gosta de usar o Vim em um terminal, precisará verificar o suporte à área de transferência do X11.
No console, digite:
Se você encontrar -xterm_clipboard , terá duas opções:
1) Compile o vim você mesmo, com o sinalizador xterm_clipboard no
2) Desinstale o vim, instale o gvim (vim-gtk ou vim-gnome). Você pode usar o vim não gui chamando o vim a partir do terminal, da mesma maneira que fazia antes. Desta vez, quando você verificar, deverá encontrar + xterm_clipborad .
Agora, quando você puxa algum texto no registro + dentro do seu editor vim (por exemplo, "+ yy), ele também é copiado para a área de transferência do sistema, que você pode recuperar do seu programa externo, como o editor do gedit, usando Ctrl+ V.
Se você deseja copiar o conteúdo da pasta de um programa externo para o vim , copie primeiro o texto na área de transferência do sistema via Ctrl+ e C, no modo de inserção do editor do vim , clique no botão do meio do mouse (geralmente a roda) ou pressione Ctrl+ Shift+ Vpara colar.
Estas são 4 condições básicas de copiar e colar relacionadas ao vim. Eu espero que isso ajude.
fonte
vim-gtk
temxterm_clipboard
suporte e no Fedoraxvim
tem.Eu sempre uso Shift+ Insertquando quero colar texto no terminal, funciona em todos os programas do terminal.
(Essa também é a razão pela qual nunca consigo um laptop onde você não pode pressionar Insertsem pressionar uma tecla secundária)
fonte
Vi
/Vim
! = terminal;)Ctrl+A
,Ctrl+C
também?Use o botão central do mouse para inserir o texto que você destacou 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 do Vim.
fonte
Depois de inserir o vi, pressione
i
para entrar no modo de inserção, clique com o botão direito do mouse no terminal, clique em colar.fonte
i
. O que maiúsculasI
fazem?i
. MaiúsculasI
move o cursor para o início da linha antes de entrar no modo de inserção, o que não é necessário aqui.Instruções detalhadas para copiar / colar linhas de texto no vi usando
yank
eput
(use o seguinte no modo de comando do vi)
Copiar (YANK)
Para copiar uma linha no vi:
yy
ou digiteY
Para copiar 2 linhas no vi:
2yy
ou digite2Y
(da mesma forma, qualquer número de linhas pode ser copiado)
Para copiar todas as linhas do local atual para o final do arquivo:
yG
Para copiar todo o texto do local atual até o final da palavra atual:
yw
Para copiar todo o texto do local atual para o final da linha:
y$
Colar (PUT)
Para colar texto na área de transferência - após a localização do cursor:
p
Para colar texto na área de transferência - antes da localização do cursor:
P
fonte
Eu tive um problema, porque minha instalação do Vim não suportava a área de transferência :
Instalei o vim-gnome (que suporta a área de transferência) e verifiquei novamente:
Agora eu posso copiar e colar usando "+ ye" + p, respectivamente.
fonte
Com o Vim 8+ no Linux ou Mac, agora você pode simplesmente usar a pasta nativa do SO (
ctrl+shift+V
no Linux,cmd+V
no Mac). Não pressionei
para inserir o modo.Ele colará o conteúdo da área de transferência do sistema operacional, preservando os espaços e as guias sem adicionar a inserção automática. É equivalente ao velho
:set paste
,i
,ctrl+shift+V
,esc
,:set nopaste
método.Você nem precisa mais dos recursos
+clipboard
ou do+xterm_clipboard
vim instalados. Esse recurso é chamado de "pasta entre colchetes". Para obter mais detalhes, consulte https://stackoverflow.com/questions/2514445/turning-off-auto-indent-when-pasting-text-into-vim/56781763#56781763fonte
Se você é root : Ctrl+ Shift+V
Se você não é root : Center, clique com o mouse.
fonte
Eu só queria observar que, usando o Vim via Git Bash no Windows, você pode simplesmente usar
p
ou clicar com o botão central do mouse sem estar no modo de inserção. Usando o Vim através do PuTTY , você pode clicar com o botão direito. E o destaque é a cópia.Eu notei isso porque cheguei aqui sem ver que este é o SE para Ubuntu.
Outros comandos úteis:
fonte
Você pode usar Ctrl+ Shift+ Vpara colar na versão terminal vim, mas para a versão GUI do vim
Neovim-Qt
, colar o texto da área de transferência do sistema com Ctrl+ Shift+ Vsimplesmente não funcionará. Você precisa acessar a área de transferência"+
ou"*
o editor vim.A adição de uma nova combinação de teclas
.vimrc
irá simplesmente copiar / colar os comandos:fonte